martes, 16 de septiembre de 2014

¿Qué día de la semana fue...?

¿Os gustaría saber en qué día de la semana nacisteis, cuántos años faltan para que vuestro cumpleaños sea un sábado o en qué día de la semana empezó el desembarco de Normandía? ¿Si?...Vale, pero antes tenemos que echar un vistazo a nuestro calendario y las reglas que lo forman...el calendario gregoriano, que lleva ese nombre porque fue el Papa Gregorio XIII quien llevó la reforma en 1582.

Pero viajemos un poco más atrás en el tiempo...

Hay varios tipos de calendarios, pero todos están basados en los movimientos de los astros: el Sol, la Tierra y la Luna. El movimiento de rotación de la Tierra sobre su eje da lugar al concepto de día. La rotación de la Luna alrededor de la Tierra da lugar al mes, y finalmente, la rotación de la Tierra alrededor del Sol origina el año. Los diferentes calendarios dan más o menos peso a cada uno de estos tres movimientos, así tenemos: los calendarios solares, los calendarios lunares y los calendarios lunisolares. Los calendarios solares son aquéllos que se basan en la posición del Sol sobre el horizonte, es decir, en la rotación de la Tierra alrededor del Sol. La base de la escala temporal en estos calendarios es el año trópico, es decir, el año de las estaciones. La duración de los meses se aproxima a las fases de la luna, pero se ajusta para tener años de 365 días. Nuestro calendario gregoriano es de este tipo. Los calendarios lunares toman como base de la escala temporal el mes, entendido como el período de tiempo transcurrido entre dos lunas llenas (o dos lunas nuevas). Si bien son más simples, presentan el grave inconveniente de que no tienen una fecha fija para los equinoccios: los cambios de estación se producen en fechas variables. El calendario islámico es un ejemplo. Por último, los calendarios lunisolares son una combinación de los dos tipos anteriores. Por ello son más complejos, aunque a cambio, permiten conocer con exactitud la posición de la Luna en cada fecha. El calendario hebreo es un calendario lunisolar.


La razón última de la complejidad de los calendarios es la inconmensurabilidad de los movimientos astronómicos en que se basan. El año trópico tiene aproximadamente una duración media de 365 días, 5 horas, 48 minutos y 46 segundos, esto es, 365.2422 días. La duración media del mes lunar es de 29 días, 12 horas, 44 minutos y 2.78 segundos, o sea, 29.53059 días. Como no hay ninguna relación sencilla entre los números 365.2422 y 29.53059, no podremos construir calendarios sencillos que se basen en el Sol, la Tierra y la Luna.

Conoce diferentes calendarios y cifras más precisas en este enlace.

Los romanos emplearon inicialmente un calendario lunisolar. Ellos bautizaron los meses con los nombres que todavía hoy se usan en Occidente: Martius, Aprilis, Maius, Iunius, Quintilis, Sextilis, September, October, November, y December. Hacia el siglo VI a.C, Numa Pompilio añadió dos nuevos meses, Ianuarius y Februarius, y fijó el 25 de marzo como fecha del comienzo de la primavera. Cabe observar que febrero era el último mes, y por ello se quedó en sólo 28 días. Sin embargo, los antiguos romanos no tenían un sistema fijo para recuperar el retraso acumulado en su calendario. Los pontífices proclamaban el primer día de cada mes (que ellos llamaban calendas, palabra de la que deriva calendario), y añadían un mes cuando el retraso lo aconsejaba… o cuándo los gobernantes querían alargar sus períodos de mandato. El desorden fue en aumento hasta que Julio César encargó al astrónomo alejandrino Sosígenes la elaboración de un calendario uniforme para todo su Imperio. El calendario juliano se hizo oficial el día 1 de enero del año 708 de la fundación de Roma, es decir, en el año 45 a. C. Para mantener la fecha del equinoccio de primavera cercana al 25 de marzo, se decretó que el año anterior, conocido como el año de la confusión, tuviera 445 días. El calendario juliano, inspirado en el egipcio, era ya muy parecido al nuestro: años de 365 días, divididos en 12 meses de duración desigual, y con un año bisiesto cada cuatro. En honor de Julio César se cambió el nombre del mes Quintilis por Julius.


Julio César, además, estableció el 1 de enero como primer día del año consular, aunque durante mucho tiempo el 25 de marzo siguió considerándose el día de año nuevo. De hecho, hasta bien entrado el siglo XVIII el 25 de marzo fue considerado el primer día del año legal en Inglaterra y las colonias norteamericanas. Tras el asesinato de Julio César un año después de la implantación del calendario juliano, una errónea interpretación de la regla de los años bisiestos hizo que durante un tiempo se considerara bisiesto uno de cada tres años. Augusto corrigió el error omitiendo el 29 de febrero durante tres años bisiestos consecutivos y restableciéndolo en el año 8 d. C. El Senado romano cambió el nombre del mes Sextilis por Augustus para honrar al emperador.

Otro aspecto de este calendario fue que originalmente Febrero tenía 29 días los años normales y 30 los bisiestos. Pero al haber sido los meses del antiguo calendario Quíntilis y Séxtilis renombrados como Julio y Agosto, en honor de Julio César y César Augusto respectivamente, se decidió que el mes de Agosto tuviera 31 días en vez de los 30 que originalmente tenía Séxtilis. Para ello se le quitó un día a Febrero. Para el Senado era muy importante que César Augusto no se considerara inferior a Julio César por lo que “su mes”, debía de tener la misma cantidad de días que “el mes de Julio César”. Otro dato curioso es la nomenclatura del año bisiesto. El año bisiesto se introdujo en el Calendario Juliano, que añadía un día cada cuatro años en febrero, intercalándolo entre los días 23 y 24. Los romanos llamaban al 23 de febrero, “sexto calendas Martii”, es decir, el sexto día antes de marzo, conocido antes como el primer mes del año. Al copiar de los egipcios el ajuste de un día adicional cada cuatro años, tuvieron que repetir en el último día del año, un día más. Recordemos que Febrero era el último mes y repitieron así su día 23, que era el último día. El “sexto calendas”, por lo que a los años en que se repetía (“bis” en latín) ese día se les llamó “bis sextilis”, que nos dio finalmente el nombre de “bisiesto”.

El calendario juliano acumulaba un retraso de 11 minutos y 14 segundos por año, dando lugar a un error de un día cada 128 años. En el concilio de Nicea del año 325 se había fijado el 21 de marzo como fecha de inicio de la primavera, pero en el siglo XIII la primavera empezaba ya el 11 de marzo. Esto afectaba a la celebración de la Pascua, que marca el comienzo del año litúrgico, por lo que la Iglesia se preocupó de subsanar este desfase. El papa Gregorio XIII encomendó la reforma del calendario juliano al médico veronés Luigi Lilio Ghiraldi, que contó con la inestimable ayuda del astrónomo y matemático Cristóbal Clavius.


Para que la primavera volviera a empezar el 21 de marzo, hubo que suprimir los diez días de retraso acumulados a lo largo del primer milenio. El calendario gregoriano entró en vigor el jueves 4 de octubre de 1582, aunque se decretó que el día siguiente era viernes…¡15 de octubre! Se dice que Santa Teresa estuvo diez días sin ser enterrada, aunque en realidad sólo pasaron unas diez horas entre su muerte y su sepultura pues murió justamente el 4 de octubre de 1582.

El calendario gregoriano fue adoptado inmediatamente en España, Italia y Portugal, y se fue incorporando muy lentamente en el resto de naciones. Así, Inglaterra y las colonias norteamericanas no se adaptaron al nuevo calendario hasta el 3 de septiembre de 1752, por lo que tuvieron que suprimir once días en lugar de diez. (Si bien el Día del Libro se celebra el 23 de abril para conmemorar las muertes de Shakespeare y Cervantes, lo cierto es que Shakespeare murió diez días más tarde que Cervantes.) Suecia adoptó el calendario gregoriano poco después (1753). Japón lo hizo en 1873, y Egipto en 1875. China en 1912, Turquía en 1917, Grecia en 1923 y Rusia, tras un primer intento en 1918, adoptó oficialmente el calendario gregoriano en 1940. El último país en adoptarlo fue Corea del Sur, que lo oficializó en 1962.

El nuevo calendario, modificaba la regla de los años bisiestos, suprimiendo tres días civiles de cada cuatrocientos años. La regla es la siguiente: cada año que es exactamente divisible por 4 es un año bisiesto, excepto los años que son exactamente divisibles por 100, estos años son bisiestos sólo si son exactamente divisibles por 400. Si aplicamos estas reglas a los tiempos anteriores a la reforma gregoriana, el año 0 (1 aC) se considera que es exactamente divisible por 4, 100 y 400; por lo tanto, se trata de un año bisiesto.

El calendario gregoriano se basa así en un ciclo de 400 años, que comprende 146097 días. (97 años de 366 días más 303 años de 365 días) Como 146.097 es divisible por 7, el calendario civil gregoriano se repite exactamente después de 400 años. De la división de 146097 por 400 se obtiene una duración media de 365,2425 días por año natural, lo cual es una buena aproximación a la duración del año tropical, solo se acumula un error de un día cerca de 2500 años. Dentro de cada año, las fechas se especifican de acuerdo a la cuenta de los días desde el comienzo del mes. El orden de los meses y el número de días por mes se adoptaron a partir del calendario juliano.

Algoritmo de Zeller

Vamos ahora a construir una función que determine el día de la semana de cualquier fecha en el calendario gregoriano. Asignamos un número a cada día, así tendremos:
Domingo = 0, Lunes = 1, Martes = 2, Miércoles = 3, Jueves = 4, Viernes = 5 y Sábado = 6
Puesto que el mes que varía entre años bisiestos y comunes es febrero, vamos a considerar este mes como el último del año, como los romanos, así nuestro "año inicial" empezará en Marzo. 

Sea a ( a entre cero y  seis) el día de la semana del día 1 de marzo del 0000, entonces el 1 de marzo del 0002  será + 1, puesto que han pasado 365=52*7 + 1 días, es decir 52 semanas y un día. Así el 1 de marzo del 0003 será + 3, y el 1 de marzo del 0004 será + 4 + 1, puesto que este año es bisiesto y tiene un día más. Por tanto por cada año que pasa a aumenta en 1 y si el año es bisiesto aumenta en 2. Así, si pasan x años, tendremos que sumar x y contar otra vez más los años bisiestos, que son [x/4]-[x/100]+[x/400], (donde [...] designa la parte entera) y hacer módulo 7, es decir tomar el resto al dividir por 7.

Si consideramos este año 2014, el número de años bisiestos en estos 2014 años son [2014/4]-[2014/100]+[2014/400]= 503 -20 +5= 488 y por tanto si consideramos el 1 de marzo del 2014 que fue sábado (=6), tendremos la igualdad:
6 = + 2014 + 488 mod 7
6 = a + 2502 mod 7
a = -2496 mod7
a = 3 mod 7

El 1 de marzo del año 0 fue miércoles!!!

Puedes comprobarlo en esta página, donde encontrarás varios convertidores de diversos calendarios.

A partir de este miércoles, podemos determinar el día de la semana del primer día de marzo de cualquier año, y, por la fórmula:
1 de marzo del año y = ( 3 + y + [y/4] - [y/100] + [y/400] ) mod 7

Consideremos ahora ese mes de marzo del año 0000, sabiendo que el día 1 fue miércoles ( = 3), podemos determinar cualquier día de ese mes sin más que sumar 2 al día del mes y hacer módulo 7, por ejemplo el día 10 de marzo del 0000 = ( 2 + 10 ) mod 7 = 5 = viernes

De la misma forma podemos calcular el día de la semana del primer día del mes de abril, sin más que sumar 2+32 y hacer módulo 7, así obtenemos que el 1 de abril del 0000 = 6 = sábado y como el día 1 de abril es sábado ( = 6 ), por el mismo razonamiento que antes, podemos obtener el día de la semana de cualquier día del mes de abril sumando 5 al día del mes y haciendo módulo 7.

Se establecen así los coeficientes de cada mes, j(m), siendo:

j(marzo) = 2
j(abril) = 5
j( mayo ) = 0
j( junio ) = 3
j( julio ) = 5
j(agosto) = 1
j( septiembre) = 4
j(octubre) = 6
j(noviembre) = 2
j(diciembre) = 4
j(enero) = 0
j(febrero) = 3

Y llegamos a la congruencia de Zeller por la que se puede calcular cualquier día de la semana, dada la fecha d/m/y

día de la semana = ( d + j(m) + g(y) ) mod 7

Con g(y) = y + [y/4] - [y/100] + [y/400]  y considerando enero y febrero meses del año anterior a y.

Por ejemplo, para calcular el próximo Día de los Reyes Magos del 2015, consideraremos d=6, m=enero pero y= 2014, considerando enero como penúltimo mes del año 2014, obteniendo:
día de la semana = 6+0+2502 mod 7 = 2 = Martes

Lo curioso es que esos coeficientes, j(m) verifican la fórmula j(m) = [31*m/12] mod 7, aunque Zeller utiliza un factor de 26/10, equivalente a 30,6 días por mes, quizás más sencilla para trabajar. A mi me gusta más 367/12 = 28 + 31/12 = 30,583 días por mes, que se podría considerar más lógico.

Para los estudiantes es sencillo implementar el algoritmo en Scratch, donde evitamos la dificultad de un lenguaje de programación formal.



Ver página del proyecto

Esta entrada participa en la Edición 5.6: Paul Erdős del Carnaval de Matemáticas, cuyo anfitrión es el blog Cifras y Teclas.

¿Sabes ya qué día de la semana nació Paul Erdös?




Fuentes consultadas: