OT: den v tydnu

Brano Zarnovican zarnovican na pobox.sk
Čtvrtek Únor 3 10:40:19 CET 2000


> Zdravim,
> mam takovy hloupy problem.
> Potreboval bych si zjisti den v tydnu z urciteho data a to byva vetsinou
> "nestandardni" - 56.12.2000. Zdala se mi pro to idealni funkce mktime(), ale
> vracelo mi to 0 a pak jsem se v manualu docetl, ze zrovna tm_wday a tm_yday
> to ignoruje. Nechce se mi to nejak pocitat, jeste do toho ty presupne roky,
> ...........
> Neexistuje neco, co by mi opravilo spatny format datumu a jeste zjistilo den
> v tydnu?

Ale 'mktime' predsa opravuje vadny datum.
Skonvertujete to cez 'mktime' do UTC a potom cez 'localtime' naspat
do struktury, z ktorej si vycitate tm_wday.

						BranoZ
we:~/tmp$ ./mktime
 25.1.2001 je 0 den v tyzdni

Asi to bude Nedela. Vyskusal som si 55.12.2000 a vratilo to 6.

#include <time.h>

main() {
        struct tm cas, *pcas;
        time_t utc;

        cas.tm_min = cas.tm_sec = cas.tm_hour = 0;
        cas.tm_mday = 56;
        cas.tm_mon = 12;
        cas.tm_year = 100;

        utc = mktime( &cas );

        pcas = localtime( &utc );

        printf(" %d.%d.%d je %d den v tyzdni\n", pcas->tm_mday,
                pcas->tm_mon, pcas->tm_year + 1900, pcas->tm_wday );
}



Další informace o konferenci Linux