Posługujemy się skomplikowanym kalendarzem gregoriańskim. Miesiące mają w nim różne długości, pojawiają się lata przestępne, ten sam dzień roku wypada w różne dni tygodnia. Prezentujemy dziś (w miarę) prostą metodę pamięciowego obliczania dnia tygodnia.

Kalendarz przez nas używany został opracowany na podstawie pomiaru okresu obiegu Ziemi wokół Słońca. Średnia długość roku kalendarzowego to 365,2425 dnia, podczas gdy okres obiegu Ziemi wokół Słońca wynosi 365,2422 dnia. Oznacza to, że używany przez nas system liczenia dat “rozjedzie się” o jeden dzień po około 3000 lat.

Konsekwencją przyjętych umów jest spora niewygoda w korzystaniu z kalendarza. Ten sam dzień roku wypada w różne dni tygodnia (na przykład 17 września 2002 roku to wtorek, 17 września 2003 roku – środa, a 17 września 2004 – piątek). Każdego roku w inne dni następują święta kościelne (tu odpowiedzialny jest również ruch obiegowy Księżyca).

Chcielibyśmy dziś zaprezentować prostą (mamy nadzieję) metodę ustalenia jakim dniem tygodnia będzie (lub była) zadana data. Obliczenia mogą być wykonywane w pamięci. Podany algorytm działa prawidłowo dla dat z XX i XXI stulecia.

Obliczenia wykonywać będziemy na przykładzie dzisiejszej daty: 17 września 2002 roku.

Przyjmujemy:

D=17 (numer dnia);

M=9 (bo wrzesień to dziewiąty miesiąc roku);

R=2002.

Liczymy kolejno następujące wielkości:

A1=R-1900=102

A2=int(A1/4)=25

int oznacza wzięcie części całkowitej, na przykład: int(12,25)=12; int(10,75)=10; int(16)=16

A3=A3(M)=5

liczba ta zależy od miesiąca:

styczeń 0 (lub 6 w roku przestępnym)

luty 3 (lub 2 w roku przestępnym)

marzec 3

kwiecień 6

maj 1

czerwiec 4

lipiec 6

sierpień 2

wrzesień 5

październik 0

listopad 3

grudzień 5

Liczymy następnie sumę:

S=A1+A2+A3+D=149

Obliczamy resztę z dzielenia liczby S przez 7. W naszym przypadku wynosi ona 2 (bo 149=7*21+2). Wynik określa dzień tygodnia: 0 oznacza niedzielę, 1 poniedziałek i tak dalej aż do soboty odpowiadającej reszcie 6. Dzisiejszy dzień zgodnie z tymi rachunkami to wtorek.

Tabelka prezentuje wyniki obliczeń dla kilku dat z XX i XXI wieku:

DataA1A2A3DSReszta (wynik)
10 stycznia 190441610210 (niedziela)
15 stycznia 2013113280151562 (wtorek)
30 sierpnia 197373182301234 (czwartek)
18 września 199999245181466 (sobota)

Na zakończenie kilka uwag dotyczących tej metody:

Wykonując obliczenia pamięciowe można zamiast otrzymywanych liczb A1, A2 oraz D brać reszty z dzielenia ich przez 7 (zamiast 36 można wziąć 1).

W XXI wieku można obliczenia uprościć, definiując A1=R-2000. Jednak od otrzymanego wyniku S przed obliczeniem reszty z dzielenia przez 7 należy odjąć 1.

Powodzenia w ćwiczeniu szarych komórek!

Autor

Michał Matraszek