Obliczanie dnia tygodnia dowolnej daty w pamięci (czyli jak zdobyć sprawność Pana Kalendarza)

WSTĘP Możliwość określania dnia tygodnia dla dowolnej daty oferują tzw. kalendarze wieczne, jednak szukanie dnia tygodnia w różnej maści tabelach nie może się równać z liczeniem tego w pamięci (większa […]

WSTĘP

Możliwość określania dnia tygodnia dla dowolnej daty oferują tzw. kalendarze wieczne, jednak szukanie dnia tygodnia w różnej maści tabelach nie może się równać z liczeniem tego w pamięci (większa satysfakcja, nie mówiąc o efekcie wywieranym na osobach postronnych;). Nie wgłębiając się w meandry wieków wcześniejszych niż wiek XX metoda jest właściwie prosta, a w obrębie bieżącego roku po prostu banalna. Przedstawiając metodę rozpocznę od podstaw, by z czasem wyruszyć w kierunku odleglejszych dat i związanych z nimi implikacji. Zakres działania mojej metody obejmuje okres od 5r. n.e do dowolnej daty przyszłej. Historycy nie są pewni czy rok 4 n.e. był przestępny więc określanie tam dni tygodnia mija się  z celem– poza tym w tamtych czasach raczej nikt nie interesował się faktem czy danego dnia była sobota czy poniedziałek bo zasuwał w polu cały tydzień, ewentualnie jeśli bardziej mu się poszczęściło to spał cały tydzień nie zważając na poniedziałek. Patrząc natomiast w przyszłość przedstawiana metoda nie ma ograniczeń – o ile oczywiście nasza cywilizacja pozostanie przy obecnie obowiązującym kalendarzu gregoriańskim i dopóki tenże nie rozreguluje się względem roku zwrotnikowego (spóźnia się mniej więcej 1 dzień na 3000 lat). Punkty orientacyjne i notacja liczbowa, którą zastosowałem w trakcie całego wywodu jest moim własnym pomysłem, można zastosować oczywiście dowolny inny schemat numerowania byle tylko pamiętać swoje własne definicje. Dodam jeszcze, że są wzory z których można to samo wyliczyć, ale ich użytkowanie „w pamięci”, bez kartki jest raczej problematyczne, poza tym zauważyłem ich istnienie dopiero po tym jak opracowałem własną metodę, więc staram się ich nadal nie zauważać. Niemniej jednak np. taki wzór Zellera wcale nie jest taki uniwersalny – wprawdzie określa dzień tygodnia, ale wyłącznie w systemie kalendarza gregoriańskiego podczas gdy moja metoda zgodnie z historycznymi faktami poniżej roku 1582 przełącza się na kalendarz juliański. Podsumowując – podstawową zaletą mojej metody jest możliwość wykonywania obliczeń dla odległych nawet dat (przeszłych lub przyszłych) w pamięci, jednocześnie przy zachowaniu w miarę sensownego horyzontu czasowego uzyskania wyniku (wiele zależy tu od treningu).

CZĘŚĆ I (daty w obrębie jednego roku)

Rozpocznijmy od wspomnianych definicji i rzeczy prostych.
Na początek notacja dni tygodnia, wszystkie obliczenia wykonuję na liczbach w zakresie od -3 do +3 (lub upraszczając o oczywisty plus, od -3 do 3), dopiero w ostatniej fazie po otrzymaniu ostatecznej liczby dnia zamieniam ją na odpowiadający jej dzień. Punktem wyjściowym mojej notacji jest 0 czyli sobota. Pełen wykaz to odpowiednio:

-3 środa
-2 czwartek
-1 piątek
0 sobota
1 niedziela
2 poniedziałek
3 wtorek

Kolejnym krokiem jest poruszanie się w obrębie miesięcy danego roku, modyfikatory miesięcy (zaraz wyjaśnię) to:

Styczeń: 0,
luty: 3,
marzec: 3,
kwiecień: -1,
maj: 1,
czerwiec: -3,
lipiec: -1,
sierpień 2,
wrzesień -2,
październik: 0,
listopad: 3,
grudzień: -2

I wyjaśniam – liczby przy miesiącach określają o ile dni przesuwa się pierwszy dzień danego miesiąca względem 1 stycznia danego roku, przykład:
1 maj 2000 roku – 1 stycznia 2000 to była sobota czyli 0, maj ma modyfikator 1 czyli ostatecznie 0+1 daje 1, 1 zgodnie z wcześniejszym przypisaniem to niedziela, w związku z tym mamy gotową odpowiedź: 1 maj 2000 roku to była niedziela.

Ilość dni w poszczególnych miesiącach nie zmienia się (poza jednym wyjątkiem – lutym roku przestępnego) tak więc i modyfikatory są stałe. I tu przykra wiadomość dla leniwych, niestety powyższe modyfikatory należy wykuć na blachę aby cały proces liczenia w pamięci odbywał się sprawnie – chociaż wymienione 12 liczb to właściwie jedyna rzecz jaką trzeba pamiętać, reszta to czyste obliczenia.

W przypadku roku przestępnego modyfikatory począwszy od marca powiększają się oczywiście o 1:
Sty 0, lut 3, marz 4, kwie 0, maj 2, czerw -2, lip 0, sierp 3, wrzes -1, paź 1, listop 4, grudz -1.

W przypadku marca i listopada (roku przestępnego) pojawiły się czwórki, jaki to dzień czwórka? Oczywiście środa (bo po 3 wtorku następuje 4 środa). Sytuacja gdy w wyniku operacji dodawania kolejnych składników wykroczymy poniżej -3 albo powyżej 3 naszego zakresu zdarzać będzie się często. Jak to szybko przeliczać? Otóż dni następują po sobie w cyklach 7-dniowych, wystarczy więc, że odejmiemy od danej liczby 7 lub dodamy 7, a znajdziemy się w tym samym dniu tygodnia. Pamiętajmy więc, że od otrzymanych liczb możemy bezkarnie odejmować lub dodawać siódemki bądź ich wielokrotności (np. 14, -21, 70 itp.) bez efektu na ostateczny wynik. W tym przypadku – od liczby 4 odejmujemy 7 i otrzymujemy -3 czyli wspomniany już wcześniej dzień tygodnia – środę.

Gdy umiemy poruszać się pomiędzy miesiącami w danym roku to możemy następnie przejść do określania dnia tygodnia wewnątrz miesięcy. W tym celu potrzebujemy uzyskać modyfikator dnia w miesiącu, stosujemy tu następującą zasadę: od określonego dnia miesiąca odejmujemy 1, a następnie redukujemy uzyskaną w ten sposób liczbę przy pomocy najbliżej jej wartości wielokrotności liczby 7 (podobna w matematyce operacja nazywana jest „modulo 7”). Najlepiej prześledźmy to na przykładach:
17 maja: 17-1 =16 , najbliższa wielokrotność 7 to 14, odejmujemy więc od 16 -14 =2, modyfikator 17-tego wynosi więc 2,
6 maja: 6 – 1 = 5, najbliższa wielokrotność siódemki to po prostu 7, a więc 5 – 7 = -2, modyfikator 6-tego wynosi więc -2.

Znając modyfikator miesiąca, modyfikator dnia oraz dzień od którego rozpoczął się dany rok możemy już swobodnie wyznaczyć odpowiadający danej dacie dzień tygodnia. Modyfikatory po prostu sumujemy, następnie redukujemy uzyskany wynik modulo 7 jeśli wykracza poza przedział -3 do 3 i określamy dzień tygodnia.

Przykład: wyznaczamy dzień tygodnia dla 19 sierpnia 2006 roku.
rok 2006 rozpoczął się od niedzieli, modyfikatorem roku jest więc + 1
sierpień ma modyfikator 2, więc modyfikatorem miesiąca jest +2
jeszcze tylko wyliczamy modyfikator dnia miesiąca: 19-1 =18, 18-21=-3, modyfikator dnia to -3
Teraz sumujemy wszystkie trzy wyniki: 1 + 2 – 3 = 0.
19 sierpnia 2006 roku był więc sobotą.

Inny przykład: 27 marca 2000 roku.
Rok 2000 rozpoczynał się od soboty, więc modyfikator roku to 0.
Modyfikator marca to normalnie 3 ale rok 2000 był przestępny więc w tym przypadku 3+1=4, a cztery to -3 (4-7=-3).
Modyfikator dnia: 27 -1 = 26, 26 – 28 = -2
Suma modyfikatorów : 0 – 3 -2 = -5, -5 + 7 = 2, a dwa to poniedziałek. Czyli 27 marca 2000 roku był poniedziałkiem.

Podsumowując – o ile wiemy od jakiego dnia tygodnia rozpoczął się dany rok to możemy na podstawie tego co zostało już tu opisane sprawdzić dowolną datę (w tym, określonym roku).

Strony: 1 2 3