Prestupny rok
Petr Kolar
PETR.KOLAR na vslib.cz
Pátek Únor 20 16:06:52 CET 1998
Dobry den
On 19 Feb 98 at 12:06, "Michal Ludvig" <michal na ludvig.cz> wrote:
> To: "Operacni system Linux" <linux na infnw.inf.upol.cz>
Zmente si adresu konference. Nyni je linux na listserv na muni.cz.
Adresa linux na infnw.inf.upol.cz sice funguje, ale moc bych ji neduveroval.
> chtel bych vedet, jestli existuje nejaka knihovni funkce, ktera zjisti
> jestli je dany rok prestupny, nebo ne, pripadne rovnou kolik ma dany mesic
> v danem roce dni... Diky
Nevim, jestli je na to knihovni funkce, ale protoze se nikdo neozval, tak
docela dobre staci
int delky_mesicu[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
prestupny = rok mod 4 == 0;
if (rok > zmena_na_gregoriansky_kalendar && rok mod 100 == 0)
prestupny = rok mod 400 == 0;
dnu_v_mesici=delky_mesicu[mesic-1];
if (mesic==2 && prestupny) dnu_v_mesici=29;
Bohuzel si nepamatuju, kdy byla zmena_na_gregoriansky_kalendar (v 16. nebo
18. stoleti?) - krome toho to nebylo ve vsech zemich stejne (mj. na Morave
jinak nez v Cechach, v Rusku az pri vstupu do 2. svetove valky - predtim
soudruzi experimentovali s ruznymi kalendari, aby se komunimus mohl budovat
i o nedelich). Pokud to ma byt pro novejsi dobu, je mozne prvni test zmenit
na if (rok mod 100 ==0), pro 20. a 21. stoleti lze treti a ctvrty radek
zcela vypustit.
S pozdravem
--
*** Petr Kolar ***
Department of Information Technologies, Technical University of Liberec
Voronezska 1329, 461 17 Liberec, Czech Republic
Phone: +420-48-5352-371 Fax: +420-48-5352-229
E-mail: Petr.Kolar na vslib.cz http://www.cesnet.cz/staff/kolar.html
Další informace o konferenci Linux