Algoritme per a calcular el dia de la semana

De L'Enciclopèdia, la wikipedia en valencià
Anar a la navegació Anar a la busca

La congruència de Zelle és un algoritme ideat per Julius Christian Johannes Zeller per a calcular el dia de la semana de qualsevol data del calendari.

La congruència de *Zeller és un algoritme ideat per *Julius Christian *Johannes *Zeller per a calcular el dia de la semana de qualsevol data del calendari.

Fòrmula

Per al calendari gregorià la congruència de Zeller és

<*math>h = *left(q + *left*lfloorfrac{(m+1)26}{10}*right*rfloor + K + *left*lfloorfrac{K}{4}*right*rfloor + *left*lfloorfrac{J}{4}*right*rfloor - 2J*right) *mod 7,</*math>

per al calendari julià és

<*math>h = *left(q + *left*lfloorfrac{(m+1) 26}{10}*right*rfloor + K + *left*lfloorfrac{K}{4}*right*rfloor + 5 - J*right) *mod 7,</*math>

A on

h és el dia de la semana (0 = dissabte, 1 = dumenge, 2 = dilluns,...),

q és el dia del més, m és el més,

J és la centuria (és realitat ⌊any / 100⌋) i

K l'any de la *centuria (any *mod 100).

Giner i febrer es conten com a mesos 13 i 14 de l'any anterior. Observe, que el 2 de giner del 2013, és m=13; any=2012

És oportú recordar que la funció *mod és el residu que queda de la divisió de dos números.

En les implementacions informàtiques en les que el mòdul d'un número negatiu és negatiu, la manera més senzilla d'obtindre un resultat entre 0 i 6 és reemplaçar - 2 J per + 5 J i - J per + 6 J.


Referències