letni/zimni cas - chci algoritmus
Stepan Husek
husek
Středa Březen 17 11:54:16 CET 2004
> potrebuju naprogramovat RTC s automatickym prechodem mezi letnim a zimnim
> casem. Nemate na to prosim nekdo nejakej algoritmus? Nikdy jsem nezkoumal,
> jestli je to pravidelny, ze se to x.y v z:00 posune o hodinu dopredu nebo
> zpet. Nebo je to kazdy rok jinak?
>
> A prestupny rok => unor ma 29dni, kdyz (ROK modulo 4)=0 ,ze jo?
Tady mate kus clanku, ktery to presne popisuje:
Rok 2000 je prestupny rok. Prestupnost roku se totiz pozna podle techto
tri pravidel (z nichz to posledni byva zapomenuto i na takovych mistech
jako je vysoke skolstvi):
1. Prestupny rok je takovy, ktery je delitelny ctyrmi
2. ale nesmi byt delitelny 100
3. s vyjimkou toho kdy je delitelny 400
Rok je dlouhy 365.24219 dne. Diky tomu vznikla potreba prechodneho roku
(leap year), ktery kazdy "cvrty" rok pridava navic jeden den - dohani
tak onu necelou ctvrtinu. Bohuzel pro nas se prechodne roky jaksi
opomnely vsouvat az do roku 8. Nekolik neuspesnych pokusu o napravu
nasledovala oprava v roce 1582 - kdy 15.rijen nasledoval 4.rijen -
a prave tehdy vstoupila podminka s 400kou v platnost.
Soucasny Gregoriansky kalenar bere rok jako 365.2425 dne....
A aby nebylo legraci konec, nektera mista na zemi neracila akceptovat
prestupne roky po dobu nekolika dalsich stoleti a tak v ruznych letech
racili skakat o spoustu dnu. Napriklad v roce 1752 skok o 12 dni
(2.9 - 14.9) v Britanii a koloniich.
Z uvedenych cisel mimochodem plyne ze by melo byt zavedeno ctvrte
vyjimkove pravidlo - pokud je rok delitelny 3200 tak to neni prestupny
rok.
(konec citatu)
Stepan Husek
Další informace o konferenci Hw-list