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

Z Wikipedie, otevřené encyklopedie

Skočit na: Navigace, Hledání

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 ⇒ pondeli, 1 ⇒ utery, 2 ⇒ streda, 3 ⇒ ctvrtek, 4 ⇒ patek, 5 ⇒ sobota, 6 ⇒ nedele

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).

[editovat] Související články