Se atribuye su creación a Julius Christian Johannes Zeller, un sacerdote protestante alemán que vivió en el siglo XIX.
Zeller observó que existía una dependencia entre las fechas del calendario gregoriano y el día de la semana que les correspondía. A raíz de esa observación, obtuvo (se dice que por tanteo), esta fórmula, en apariencia mágica, que lleva su nombre.
La fórmula en sí es muy sencilla, y se basa en algunas operaciones de aritmética modular (el resto, también llamado módulo, de las divisiones)
Es necesario tener en cuenta que la fórmula presentada a continuación es válida sólo para el calendario gregoriano, promulgado por el papa Gregorio XIII en 1582, pero adoptado en distintas fechas en cada país.
Si quieres conocer el por qué del funcionamiento de esta fórmula, lee éste excelente artículo de la wikipedia.
Para calcular la congruencia de Zeller, se parte de una fecha del calendario gregoriano, que consideraremos como tres enteros: año, mes (1=enero, 12=diciembre) y día.
Primeramente, es necesario hacer algunos ajustes en el mes y el año. Si el mes es enero o febrero (1 ó 2) se considerarán como el mes 13 o 14 del año anterior. A partir de ahí, basta con aplicar la fórmula.
Pasos:
-Sean año, mes, dia tres enteros que representan a una fecha del calendario gregoriano
-Si mes<=2
-mes=mes+12
-año=año-1
-si no
-mes=mes-2
-a=año mod 100
-b=año / 100 //división entera
-d=( 700 +
(mes*26-2)/10 +
dia +
a +
a / 4 + //división entera
b / 4 – //división entera
b * 2
) mod 7
//d es un entero que representa al dia de la semana
//tal que domingo es 0, lunes es 1… sábado es 6.
Haz la prueba:
[notice class=»notice»]Fuente: http://www.latecladeescape.com[/notice]