Algoritmus pro výpočet dne v týdnu

Z Wikipedie, otevřené encyklopedie

Vstupem algoritmu pro výpočet dne v týdnu je klasické datum v podobě den, měsíc a rok včetně století.

Pro vlastní výpočet je nejprve nutné určit několik koeficientů podle příslušných konverzních tabulek.

 a <- prevodka_stoleti[ (ROK div 100) mod 4 ]
 b <- ROK mod 100
 c <- b div 4
 d <- prevodka_mesicu[MESIC]

Pokud se jedná o přestupný (rok dělitelný beze zbytku 4, ale nedělitelný beze zbytku 100) či superpřestupný rok (rok dělitelný beze zbytku 400), tak pro leden a únor musíme snížit koeficient d o 1.

 DEN V TYDNU <- prevodka_dnu[ (a + b + c + d + DEN) mod 7 ]

Příslušné převodky:

 prevodka_stoleti:  0 => 0, 1 => 5, 2 => 3, 3 => 1
 prevodka_mesicu:   1 => 6, 2 => 2, 3 => 2, 4 => 5, 5 => 7, 6 => 3, 7 => 5, 8 => 1, 9 => 4, 10 => 6, 11 => 2, 12 => 4
 prevodka_dni:      0 => nedele, 1 => pondeli, 2 => utery, 3 => streda, 4 => ctvrtek, 5 => patek, 6 => sobota

Algoritmus byl publikován v astronomické ročence v roce 1991.

Výše uvedená skica by chtěla přepsat do slov a vysvětlit, proč dochází k jednotlivým krokům výpočtu (ty převodky jsou příslušné tabulky publikované v ročence).