Wpisany przez Tomasz Lubiński
wtorek, 19 lutego 2008 18:57
Czas jednego obiegu ziemi wokół słońca wynosi 365 dni 5 godzin i 49 minut (365.242199 dnia). W związku z tym faktem wprowadzono do kalendarza tak zwane lata przestępne. Rok przestępny to taki, który ma 366 zamiast 365 dni.
Początkowo zgodnie z kalendarzem juliańskim wprowadzonym przez Juliusza Cezara w 45 roku p.n.e, rok przestępny występował co 4 lata, zatem średnio rok trwał 365.25 dnia. Niestety podejście to nie było zbyt dokładne. Średnio co roku bowiem ubywało 365.25 - 365.242199 = 0.007801 dnia. Wydaje sie to niezbyt dużą różnicą, ale nawarstwiając się przez kolejne lata daje przesunięcie o około 1 dzień co 128 lat.
Obecnie stosuje się formułę zgodną z kalendarzem Gregoriańskim wprowadzonym w 1582 roku przez papieża Grzegorza XIII, w którym rok przestępny spełnia jeden z następujących warunków:
Formalnie sprawdzenie czy dany rok jest rokiem przestępnym możemy zapisać następująco:
((rok mod 4 = 0) and (rok mod 100 <> 0)) or (rok mod 400 = 0)
Przykład:
Czy rok 2008 jest rokiem przestępnym?
Sprawdźmy pierwszy warunek, jest podzielny przez 4 (2008 mod 4 = 0), i nie jest podzielny przez 100 (2008 mod 100 = 8). Pierwszy warunek jest spełniony, zatem rok 2008 jest rokiem przestępnym.
Czy rok 2000 jest rokiem przestępnym?
Sprawdźmy pierwszy warunek, jest podzielny przez 4 (2000 mod 4 = 0), ale jest również podzielny przez 100 (2000 mod 100 = 0). A więc pierwszy warunek nie jest spełniony.
Sprawdźmy zatem drugi warunek, jest podzielny przez 400 (2000 mod 400 = 0), zatem rok 2000 jest rokiem przestępnym.
Czy rok 2100 jest rokiem przestępnym?
Sprawdźmy pierwszy warunek, jest podzielny przez 4 (2100 mod 4 = 0), ale jest również podzielny przez 100 (2100 mod 100 = 0). A więc pierwszy warunek nie jest spełniony.
Sprawdźmy zatem drugi warunek, nie jest podzielny przez 400 (2100 mod 400 = 100).
Żaden z warunków nie jest spełniony zatem rok 2100 nie jest rokiem przestępnym.
Czy rok 2007 jest rokiem przestępnym?
Sprawdźmy pierwszy warunek, nie jest podzielny przez 4 (2007 mod 4 = 3). Pierwszy warunek nie jest spełniony.
Sprawdźmy zatem drugi warunek, nie jest podzielny przez 400 (2007 mod 400 = 7). Ten warunek również nie jest spełniony.
Żaden z warunków nie jest spełniony zatem rok 2007 nie jest rokiem przestępnym.
Przykład w JavaScript:
Początkowo zgodnie z kalendarzem juliańskim wprowadzonym przez Juliusza Cezara w 45 roku p.n.e, rok przestępny występował co 4 lata, zatem średnio rok trwał 365.25 dnia. Niestety podejście to nie było zbyt dokładne. Średnio co roku bowiem ubywało 365.25 - 365.242199 = 0.007801 dnia. Wydaje sie to niezbyt dużą różnicą, ale nawarstwiając się przez kolejne lata daje przesunięcie o około 1 dzień co 128 lat.
Obecnie stosuje się formułę zgodną z kalendarzem Gregoriańskim wprowadzonym w 1582 roku przez papieża Grzegorza XIII, w którym rok przestępny spełnia jeden z następujących warunków:
- jest podzielny przez 4, ale nie jest podzielny przez 100
- jest podzielny przez 400
Formalnie sprawdzenie czy dany rok jest rokiem przestępnym możemy zapisać następująco:
((rok mod 4 = 0) and (rok mod 100 <> 0)) or (rok mod 400 = 0)
Przykład:
Czy rok 2008 jest rokiem przestępnym?
Sprawdźmy pierwszy warunek, jest podzielny przez 4 (2008 mod 4 = 0), i nie jest podzielny przez 100 (2008 mod 100 = 8). Pierwszy warunek jest spełniony, zatem rok 2008 jest rokiem przestępnym.
Czy rok 2000 jest rokiem przestępnym?
Sprawdźmy pierwszy warunek, jest podzielny przez 4 (2000 mod 4 = 0), ale jest również podzielny przez 100 (2000 mod 100 = 0). A więc pierwszy warunek nie jest spełniony.
Sprawdźmy zatem drugi warunek, jest podzielny przez 400 (2000 mod 400 = 0), zatem rok 2000 jest rokiem przestępnym.
Czy rok 2100 jest rokiem przestępnym?
Sprawdźmy pierwszy warunek, jest podzielny przez 4 (2100 mod 4 = 0), ale jest również podzielny przez 100 (2100 mod 100 = 0). A więc pierwszy warunek nie jest spełniony.
Sprawdźmy zatem drugi warunek, nie jest podzielny przez 400 (2100 mod 400 = 100).
Żaden z warunków nie jest spełniony zatem rok 2100 nie jest rokiem przestępnym.
Czy rok 2007 jest rokiem przestępnym?
Sprawdźmy pierwszy warunek, nie jest podzielny przez 4 (2007 mod 4 = 3). Pierwszy warunek nie jest spełniony.
Sprawdźmy zatem drugi warunek, nie jest podzielny przez 400 (2007 mod 400 = 7). Ten warunek również nie jest spełniony.
Żaden z warunków nie jest spełniony zatem rok 2007 nie jest rokiem przestępnym.
Przykład w JavaScript:
| Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
| Tomasz Lubiński | Ada | ![]() | ![]() |
![]() ![]() ![]() ![]() / 1 | |
| Tomasz Lubiński | C# | MS Visual Studio .net | ![]() | ![]() |
![]() ![]() ![]() ![]() / 1 |
| Tomasz Lubiński | C/C++ | ![]() | ![]() |
![]() ![]() ![]() ![]() / 1 | |
| Tomasz Lubiński | Delphi/Pascal | ![]() | ![]() |
![]() ![]() ![]() ![]() / 1 | |
| Tomasz Lubiński | Java | ![]() | ![]() |
![]() ![]() ![]() ![]() / 1 | |
| Tomasz Lubiński | Java Script | ![]() | ![]() |
![]() ![]() ![]() ![]() / 3 |
Poprawiony: piątek, 10 czerwca 2011 20:43



/ 1




Komentarze
Dziękuję bardzo ponieważ potrzebowałam tej wiadomości
Nie jest gdyż nie spełnia żadnego z dwóch warunków:
- jest podzielny przez 4, ale nie jest podzielny przez 100 (2100 jest podzielne przez 4 i jest również podzielne przez 100),
- jest podzielny przez 400 (2100 nie jest podzielne przez 400).
a) jest podzielny przez 4 ale jednocześnie jest podzielny przez 100 - zatem pierwszy warunek nie jest spełniony,
b) nie jest podzielny przez 400 - zatem drugi warunek również nie jest spełniony.
1100 - nie jest rokiem przestępnym:
a) jest podzielny przez 4 ale jednocześnie jest podzielny przez 100 - zatem pierwszy warunek nie jest spełniony,
b) nie jest podzielny przez 400 - zatem drugi warunek również nie jest spełniony.
1734 - nie jest rokiem przestępnym:
a) nie jest podzielny przez 4 - zatem pierwszy warunek nie jest spełniony,
b) nie jest podzielny przez 400 - zatem drugi warunek również nie jest spełniony.