Cum se calculează ziua din săptămâna unui an

Pasul 1

Pregătiți informațiile. Pentru a realiza algoritmul este necesar să specificați o zi, o lună și un an. Aceasta prezintă lunile de la trei la 14, începe cu luna martie și se termină în februarie. Aceasta garantează că zilele de salt se mențin întotdeauna la sfârșitul anului, ceea ce simplifică calculele: dacă luna <3 atunci, luna = luna + 12.

Pasul 2

Calculați secolul și anul. Anii 1950 trebuie să fie 19, în ciuda faptului că această cifră recunoaște secolul al XX-lea: secolul = baza (an / 100) = yearSiglo = year mod 100.

Pasul 3

Găsiți ziua săptămânii în care a început secolul: Săptămâna = baza (secolul / 4) + secolul 5 *. Zeller a stabilit că acest calcul, al modulului șapte, va da ziua săptămânii în care a început orice secol. Calculul bazei ia în considerare faptul că la fiecare patru secole nu există o zi sărmană.

Pasul 4

Calculați ziua săptămânii în care a început anul: daySweden = weekdayDay + yearSiglover + base (yearSiglo / 4). Cu excepția anilor buni, în fiecare an trebuie să începeți a doua zi a săptămânii care a început anul trecut. Calculul modulului șapte indică ziua săptămânii din prima zi a anului.

Pasul 5

Găsiți ziua săptămânii în care începe luna: weekdayDay = weekdayDay + base ((luna + 1) * 26) / 10). Aceasta este inima algoritmului lui Zeller care a observat că acest calcul este capabil să determine în ce zi a săptămânii va începe o lună. Cu această formulă, este eliminată necesitatea ca tabelele de căutare să determine lungimea fiecărei luni.

Pasul 6

Adăugați ziua lunii și calculați ziua din săptămâna în care se încadrează data: weekdayDay = weekdayDay + daySunday = weekday Mod 7.

Pasul 7

Convertiți data la standardele Organizației Internaționale de Standardizare: data săptămânii; ziua săptămânii începe cu luni = 1. Cu algoritmul Zeller, sâmbăta este folosită = 0. Pentru conversie se folosește aritmetica modulară simplă: weekday = ((weekdayDay + 5) mod 7) + 1.