Rok przestępny

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Dodanie dodatkowego dnia powoduje przesunięcie wspomnień w kalendarzu liturgicznym rytu rzymskiego między 24 a 28 lutego. Wspomnienie św. Macieja Apostoła obchodzone jest 24 lutego w latach zwykłych, a 25 - w latach przestępnych.

Rok przestępny – rok kalendarzowy, który ma 366 dni zamiast 365. Występuje wyłącznie w kalendarzach o rachubie opartej na obiegu Ziemi dookoła Słońca lub o rachubie kombinowanej (Księżyc i Słońce). Ma on na celu umożliwiać dopasowanie roku kalendarzowego do roku zwrotnikowego.

W kalendarzu gregoriańskim (obowiązującym m.in. w Polsce), dodatkowy dzień występuje w lutym, który ma wtedy 29 zamiast 28 dni. Dodatkowym dniem tradycyjnie nie jest jednak 29 lutego, ale dzień dodawany między 23 a 24 lutego. Dodanie tego dnia powoduje przesunięcie obchodzonych w Kościele Katolickim wspomnień świętych w okresie 24-28 lutego na następny dzień. Wiąże się to z praktyką starożytnego Rzymu, gdzie od czasów Cezara dzień przestępny wprowadzano przez powtórzenie 24 lutego (tzw. bissextilis)[1]. Nazwa bissextilis wzięła się stąd, że 24 lutego w kalendarzu rzymskim nosi nazwę sextus Kalendas, w roku przestępnym występuje dwa razy (łac. bis), stąd też nazwa bissextilis.

W kalendarzu żydowskim rokiem przestępnym jest rok, który ma dodatkowy, trzynasty miesiąc, dodawany co 3 (rzadziej co 2) lata w celu zrównania cyklu słonecznego z księżycowym.

Historia[edytuj | edytuj kod]

Lata przestępne zostały pierwszy raz wprowadzone w 238 roku p.n.e., kiedy to w Egipcie zaczęto uwzględniać dodatkowy dzień co cztery lata (zob. datowanie sotisowe). W roku 45 p.n.e. dekretem Juliusza Cezara wprowadzono taką samą rachubę w Rzymie (stąd określenie kalendarz juliański). Dodatkowy dzień zyskał najkrótszy miesiąc - luty. Błąd tej rachuby wynosi 1 dobę na 128 lat. Do dziś ten system jest stosowany w różnych kalendarzach kościołów prawosławnych (w niektórych w 1923 r. wprowadzono tzw. kalendarz nowojuliański). Obecnie powszechnie stosuje się rachubę zgodną z kalendarzem gregoriańskim, wprowadzonym w 1582 roku dekretem papieża Grzegorza XIII, w której rok przestępny (liczbowo) spełnia następujące warunki: jest podzielny przez 4, ale nie jest podzielny przez 100 lub jest podzielny przez 400. Błąd tej rachuby wynosi 1 dobę na nieco ponad 3322 lat. Przed reformą kalendarza za rok przestępny uważano każdy rok, który był podzielny przez 4.

Poprawki do kalendarzy[edytuj | edytuj kod]

Wprowadzenie poprawek najszybciej nastąpiło we Włoszech, Hiszpanii, Polsce i Portugalii, bo już w 1582, przez pominięcie 10 dni z października (od 5 do 14). W Wielkiej Brytanii poprawki wprowadzono dużo później.

Przesilenie zimowe[edytuj | edytuj kod]

Niedokładność kalendarza juliańskiego spowodowała, że w IV w. przesilenie zimowe przesunęło się z 25 na 22 grudnia, a w XVI w. już na 12 grudnia. W wyniku wprowadzenia kalendarza gregoriańskiego w 1582 i pominięcia wówczas 10 dni, termin przesilenia wypada stale w okolicach 22 grudnia.

Bieżący błąd[edytuj | edytuj kod]

Liczba lat przestępnych w ciągu 400 lat (zgodnie z kalendarzem gregoriańskim) wynosi:

\frac {400}{4} - \frac {400}{100} + \frac {400}{400} = 97

Biorąc pod uwagę, że rok zwrotnikowy ma 365,242199 dni, bieżący błąd obliczania daty wynosi:

365 + \frac {97}{400} - 365,242199 = 0,000301 \left [ {dnia \over rok} \right ]

Jest to około 26 sekund na rok (chociaż nie jest to błąd stały - ze względu na konieczność skokowego wprowadzania poprawek). W ciągu 3322 lat jest to niecały jeden dzień.

Algorytm[edytuj | edytuj kod]

Algorytm sprawdzania czy dany rok jest przestępny w kalendarzu gregoriańskim można wyrazić poprzez funkcję warunkową:

   boolean czyPrzestepny(int rok)
   {   
       return ((rok%4 == 0 && rok%100 != 0) || rok%400 == 0);
   }

Metoda ta (napisana w języku Java) zwraca wartość true, gdy jej argument rok jest podzielny przez 4 i nie jest podzielny przez 100, lub jest podzielny przez 400 - czyli zwraca wartość true, gdy rok jest przestępny. Przykładowo lata 2000 i 2004 były przestępne, ale rok 1900 nie był i 2100 też nie będzie.

Analogiczny kod w PHP będzie wyglądał tak:

   function czyPrzestepny($rok)
   {
       return (($rok%4 == 0 && $rok%100 != 0) || $rok%400 == 0);
   }

Zobacz też[edytuj | edytuj kod]

Przypisy

  1. Shamylus Octavius: Kalendarz w starożytnym Rzymie. [dostęp 3 maja 2009].