Portada arrow Algoritmos arrow Fiestas móviles
Fiestas móviles
sábado, 07 de octubre de 2006

En paises como España, de tradición cultural cristiana, existen una serie de celebraciones a lo largo del año que no caen siempre en la misma fecha del año, como el Viernes Santo o el Carnaval.

Si queremos obtener algorítmicamente cuándo caen estas fiestas, no es muy complicado (si tienes la fórmula, claro).

Estas celebraciones cambian de fecha porque se rigen por el ciclo lunar de 28 días.

Para obtenerlas, es necesario fijar cuál será el llado "domingo de Pascua", en el que se conmemora la resurreción de Cristo. Esta forma de fijar las celebraciones cristianas se fija en el Concilio de Nicea, en el año 325. El motivo fue, aparentemente, celebrarlo siguiendo el calendario judío, que se basaba en ciclos lunares.

Así pues, se fija el domingo de Pascua de cada año como el domingo siguiente a la primera luna llena después del equinocio de primavera.

La fórmula para hallar esta fecha dado un año cualquiera es sencilla de programar (pero no de explicar -yo no sabría hacerlo-, ya que se basa en los movimientos lunares).

Aquí tienes un fragmento de código en C# que lo calcula, y es fácilmente traducible a cualquier otro lenguaje.

static DateTime DomingoPascua(int anno)
{
   DateTime resultado;
   int a = anno % 19; //% es resto de la división
   int b = anno % 4;
   int c = anno % 7;
   int d = (19*a+24)%30;
   int e = (2 * b + 4 * c + 6 * d + 5) % 7;
   int f = 22 + d + e;
   //f es el día en el que cae el domingo de pascua contado
   //a partir del 1 de marzo. Si f<32, cae en marzo
   //si f>31, cae en abril. El 32 representa al 1 de abril
   if (f > 31)
      //año=anno; mes=4; dia=f-31
      resultado = new DateTime(anno, 4, f - 31);
   else
      //año=anno; mes=3; dia=f
      resultado = new DateTime(anno, 3, f);
   return resultado;
}

A partir del domingo de pascua, pueden calcularse el resto de las celebraciones.

  • Jueves Santo es el jueves antes del domingo de pascua
  • Viernes Santo es el viernes antes del domingo de pascua
  • Quincuagésima es el séptimo domingo antes de pascua.
  • La ascensión es el sexto jueves después de pascua
  • Pentecostés es el 7º domingo después de pascua
  • Domingo de la santísima trinidad (domingo de ramos) es el que sigue a pentecostés.
  • Corpus chirsti es el 9º jueves después de pascua.
  • El miércoles de ceniza es 46 días antes del domingo de la santísima trinidad.
  • El martes de carnaval es el martes antes del miércoles de ceniza.

 

¿Y cómo se suman esos días? ¿Con un bucle? ¡¡¡ Desde luego que no !!!: utilizando el día juliano.

 
←Artículo anterior   Artículo siguiente→

Categorías

Suscríbete

RSS feed Sindicación RSS

(¿Qué es la sindicación RSS?)


Suscribir por e-mail

¿Dónde estoy?

Estás en La tecla de ESCAPE, un sitio web personal en el que nos gusta hablar de algoritmos, informática, tecnología, ciencia, ingeniería, internet... y cualquier tontería que se nos ocurra. El punto de vista de nuestros artículos técnicos suele ser muy básico, así que a menudo adoptamos grandes simplificaciones. (Más...-Términos de uso)