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