(original) (raw)

#include #include void main() { #if 0 int tm_sec; /* seconds */ int tm_min; /* minutes */ int tm_hour; /* hours */ int tm_mday; /* day of the month */ int tm_mon; /* month */ int tm_year; /* year */ int tm_wday; /* day of the week */ int tm_yday; /* day in the year */ int tm_isdst; /* daylight saving time */ #endif struct tm buf; struct tm* buf2; time_t tt; /* This is actually a succesful call */ tt = -1; buf2 = localtime(&tt); buf2->tm_wday = 42; buf2->tm_yday = 43; printf("\nSuccesful:\n"); printf("%d\n", buf2->tm_year ); printf("%d\n", buf2->tm_mon ); printf("%d\n", buf2->tm_mday ); printf("%d\n", buf2->tm_hour ); printf("%d\n", buf2->tm_min ); printf("%d\n", buf2->tm_sec ); printf("%d\n", buf2->tm_wday ); printf("%d\n", buf2->tm_yday ); printf("%d\n", buf2->tm_isdst); printf("--\n"); tt = mktime(buf2); printf("%d\n", (int)tt); printf("%d\n", buf2->tm_wday ); printf("%d\n", buf2->tm_yday ); /* This is an erroneous call */ printf("\nErroneous:\n"); buf2 = localtime(&tt); buf2->tm_wday = 42; buf2->tm_yday = 43; buf2->tm_year = -1000; /* invalid date/time */ printf("%d\n", buf2->tm_year ); printf("%d\n", buf2->tm_mon ); printf("%d\n", buf2->tm_mday ); printf("%d\n", buf2->tm_hour ); printf("%d\n", buf2->tm_min ); printf("%d\n", buf2->tm_sec ); printf("%d\n", buf2->tm_wday ); printf("%d\n", buf2->tm_yday ); printf("%d\n", buf2->tm_isdst); tt = mktime(buf2); printf("--\n"); printf("%d\n", (int)tt); printf("%d\n", buf2->tm_wday ); printf("%d\n", buf2->tm_yday ); }