O roku ów...

O kalendarzu można w nieskończoność. Gdy przed kilkunastu laty miałem zaprojektować uniwersalny programowy moduł kalendarzowy pomagający ustalać dni robocze i wolne od pracy (a także soboty, nie wiadomo dlaczego zwane pracującymi), koniecznie chciałem sam odpowiednim algorytmem wyliczać datę Wielkanocy. Nie wiedziałem, naiwny, na co się porywam.

O kalendarzu można w nieskończoność. Gdy przed kilkunastu laty miałem zaprojektować uniwersalny programowy moduł kalendarzowy pomagający ustalać dni robocze i wolne od pracy (a także soboty, nie wiadomo dlaczego zwane pracującymi), koniecznie chciałem sam odpowiednim algorytmem wyliczać datę Wielkanocy. Nie wiedziałem, naiwny, na co się porywam.

Zadzwoniłem po pomoc tam, gdzie wydawało się, że będą wiedzieli najlepiej: do siedziby arcybiskupa. Ku memu rozczarowaniu, mieli tylko gotowe tablice. Nieco więcej dał kontakt z Obserwatorium Astronomicznym Uniwersytetu Adama Mickiewicza: okazało się, że wystarczy wiedzieć, kiedy zaczyna się wiosna i następująca po tym pełnia księżyca (gdyż cała ruchomość Wielkanocy sprowadza się do tego, aby zachować odstęp czasowy między jej dniem a ostatnią przed nim pełnią księżyca, taki sam, jaki wystąpił w roku 30 n.e., kiedy to miało nastąpić zmartwychwstanie Chrystusa). Ale uwaga: o wszystkim decydują ułamki, a te powodują, że pełnia stosowana w sprawach religijnych nie zawsze pokrywa się z astronomiczną. Tak czy inaczej więc - zostały tablice.

Podobnie, choć znacznie łatwiej, jest z latami przestępnymi. Od czasów Kalendarza gregoriańskiego (1582 r.) przestępny jest każdy rok podzielny bez reszty przez cztery, z wyjątkiem jednak lat dzielących się bez reszty przez sto, które są przestępne tylko wtedy, gdy dodatkowo dzielą się przez czterysta.

Toteż nie był przestępny rok 1900 (pakiet MS Excel mówi co innego, ale podobno Microsoft świadomie wprowadził ten błąd - jak twierdzi - w dbałości o pełną zgodność z Lotus 1-2-3), za to był przestępny rok 2000, a nie będzie 2100. Datę 29 lutego 2000 r. dobrze będą pamiętać (ale źle wspominać) niektóre banki w Polsce, których klienci odczuli ten dzień dość boleśnie. O perypetiach tych mało kto wiedział, gdyż po przejściu przełomu lat zainteresowanie sprawą problemu roku 2000 spadło do zera.

Nasz kalendarz nie jest jednak dokładny: zdania uczonych w tej materii różnią się nieco, ale według jednych dla wyrównania kalendarza z ruchem ciał niebieskich nie będzie mógł być przestępny rok 3600, a według innych - dopiero rok 4000. Z pewnością ułatwi to wówczas wyznaczenie daty Wielkanocy.

W początkach roku 1996 (też przestępny!) w pewnej hucie w Nowej Zelandii zastosowano nowy, komputerowy system automatycznego sterowania wytopem aluminium. System ten nie wiedział jednak, że rok ten ma aż 366 dni, toteż gdy po dniu 365. nastąpił dzień pierwszy następnego roku, a w kalendarzu ciągle był grudzień, na wszelki wypadek wszystko wyłączył, doprowadzając do zastygnięcia płynnego aluminium w urządzeniach. Straty liczono w milionach dolarów. W dwie godziny później (inna strefa czasowa!) taki sam system zachował się identycznie, z podobnymi skutkami, w hucie na Tasmanii.

Wydawało się, że w trakcie przygotowań związanych z rokiem 2000 dostatecznie ten przypadek nagłośniono. Okazuje się jednak, że nie wszędzie o nim słyszano: otóż 31 grudnia 2000 r. (366 dzień roku 2000) w Norwegii blisko 30 najnowocześniejszych pociągów ekspresowych odmówiło działania. Ruszyły dopiero po zmianie daty w ich komputerach na 1 grudnia 2000 r. Jak powiedział przedstawiciel producenta, niemieckiej firmy Adtranz, daje jej to cały miesiąc na znalezienie przyczyny i jej usunięcie.

A gdyby ktoś chciał własnoręcznie sprawdzić, kiedy w tym lub dowolnym innym roku przypada Wielkanoc, niech zajrzy na stronę Towarzystwa Astronomicznego Południowej Australii (www.assa.org.au/edm.htm). Aha - a mój program kalendarzowy i tak przestałby być uniwersalny: 22 lipca był tam zadeklarowany jako stała.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200