Congruência de Zeller
Congruência de Zelleré umalgoritmocriado porChristian Zellerpara calcular o dia da semana de qualquer data nos calendáriosjulianoougregoriano.
Fórmula
[editar|editar código-fonte]Para um calendário gregoriano, a congruência de Zeller é
Já para o calendário juliano, ela é
em que
- hé o dia da semana (0 = sábado, 1 = domingo, 2 = segunda,…)
- qé o dia do mês
- mé o mês (3 = março, 4 = abril, 5 = maio,…)
- Ké o ano do século ()
- Jé o século () (por exemplo, para 1995 o século seria 19, ainda que na realidade o século seria XX)
Nota 1: Neste algoritmo, janeiro e fevereiro são contados como os meses 13 e 14 do ano anterior. Em outras palavras, dado um ano X qualquer, para você clacular o dia da semana desse ano no mês de Janeiro ou Fevereiro, você tem que calcular como se o ano fosse X-1. (Por exemplo: para saber o dia da semana do ano de 1995 de todos os meses de Março até Dezembro, eu utilizo a fórmula como ta prescrito acima. mas para saber o dia da semana do Mês de Janeiro e Fevereiro do ano de 1995, eu teria que fazer o cálculo como se fosse o ano de 1994.)
Nota 2: Para o dia do mês emISO(1 = segunda,…), use
Implementação em software
[editar|editar código-fonte]As fórmulas anteriores requerem a definição matemática daoperação módulo,que significa que.Entretanto, a maioria daslinguagens de programaçãoimplementam a função de resto, de forma que.Portanto, para implementar a congruência de Zeller em umcomputador,as fórmulas devem ser alteradas para assegurar um numerador positivo. A forma mais simples de se fazer isso é substituirporepor.Assim, as fórmulas se tornam:
para o calendário gregoriano e
para o calendário juliano.
Zeller usavaaritméticadecimal, e achou conveniente usar¶ representar o ano. Mas usando um computador é mais simples lidar com o ano modificadoY
usandoY
,Y div 4
,e para o calendário gregoriano tambémY div 100
&Y div 400
.