12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #include <time.h>
- int
- main (void)
- {
- struct tm time_str, *tm;
- time_t t;
- char daybuf[20];
- int result;
- time_str.tm_year = 2001 - 1900;
- time_str.tm_mon = 7 - 1;
- time_str.tm_mday = 4;
- time_str.tm_hour = 0;
- time_str.tm_min = 0;
- time_str.tm_sec = 1;
- time_str.tm_isdst = -1;
- if (mktime (&time_str) == -1)
- {
- (void) puts ("-unknown-");
- result = 1;
- }
- else
- {
- (void) strftime (daybuf, sizeof (daybuf), "%A", &time_str);
- (void) puts (daybuf);
- result = strcmp (daybuf, "Wednesday") != 0;
- }
- setenv ("TZ", "EST+5", 1);
- #define EVENING69 1 * 60 * 60 + 2 * 60 + 29
- t = EVENING69;
- tm = localtime (&t);
- if (tm == NULL)
- {
- (void) puts ("localtime returned NULL");
- result = 1;
- }
- else
- {
- time_str = *tm;
- t = mktime (&time_str);
- if (t != EVENING69)
- {
- printf ("mktime returned %ld, expected %d\n",
- (long) t, EVENING69);
- result = 1;
- }
- else
- (void) puts ("Dec 31 1969 EST test passed");
- setenv ("TZ", "CET-1", 1);
- t = mktime (&time_str);
- #define EVENING69_CET (EVENING69 - (5 - -1) * 60 * 60)
- if (t != EVENING69_CET)
- {
- printf ("mktime returned %ld, expected %ld\n",
- (long) t, (long) EVENING69_CET);
- result = 1;
- }
- else
- (void) puts ("Dec 31 1969 CET test passed");
- }
- return result;
- }
|