#include #include #include #include int main(int argc, char *argv[]) { struct tm tm; time_t t; putenv("TZ=America/Chicago"); printf("Testing 1994-10-29 01:00:00 (DST)\n"); memset(&t, 0, sizeof(t)); tm.tm_year = 94; tm.tm_mon = 9; tm.tm_mday = 29; tm.tm_hour = 1; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = 0; t = mktime(&tm); printf("isdst=0 -> %d, isdst=%d\n", t, tm.tm_isdst); memset(&t, 0, sizeof(t)); tm.tm_year = 94; tm.tm_mon = 9; tm.tm_mday = 29; tm.tm_hour = 1; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; t = mktime(&tm); printf("isdst=-1 -> %d, isdst=%d\n", t, tm.tm_isdst); memset(&t, 0, sizeof(t)); tm.tm_year = 94; tm.tm_mon = 9; tm.tm_mday = 29; tm.tm_hour = 1; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = 1; t = mktime(&tm); printf("isdst=1 -> %d, isdst=%d\n", t, tm.tm_isdst); printf("Testing 1994-10-30 01:00:00 (could be either)\n"); memset(&t, 0, sizeof(t)); tm.tm_year = 94; tm.tm_mon = 9; tm.tm_mday = 30; tm.tm_hour = 1; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = 0; t = mktime(&tm); printf("isdst=0 -> %d, isdst=%d\n", t, tm.tm_isdst); memset(&t, 0, sizeof(t)); tm.tm_year = 94; tm.tm_mon = 9; tm.tm_mday = 30; tm.tm_hour = 1; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; t = mktime(&tm); printf("isdst=-1 -> %d, isdst=%d\n", t, tm.tm_isdst); memset(&t, 0, sizeof(t)); tm.tm_year = 94; tm.tm_mon = 9; tm.tm_mday = 30; tm.tm_hour = 1; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = 1; t = mktime(&tm); printf("isdst=1 -> %d, isdst=%d\n", t, tm.tm_isdst); printf("Testing 1994-11-01 01:00:00 (not DST)\n"); memset(&t, 0, sizeof(t)); tm.tm_year = 94; tm.tm_mon = 10; tm.tm_mday = 01; tm.tm_hour = 1; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = 0; t = mktime(&tm); printf("isdst=0 -> %d, isdst=%d\n", t, tm.tm_isdst); memset(&t, 0, sizeof(t)); tm.tm_year = 94; tm.tm_mon = 10; tm.tm_mday = 01; tm.tm_hour = 1; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; t = mktime(&tm); printf("isdst=-1 -> %d, isdst=%d\n", t, tm.tm_isdst); memset(&t, 0, sizeof(t)); tm.tm_year = 94; tm.tm_mon = 10; tm.tm_mday = 01; tm.tm_hour = 1; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = 1; t = mktime(&tm); printf("isdst=1 -> %d, isdst=%d\n", t, tm.tm_isdst); return 0; }