1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
#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);
if (t != (time_t) -1)
{
printf ("mktime returned %ld, expected -1\n", (long) t);
result = 1;
}
else
(void) puts ("Dec 31 1969 CET test passed");
}
return result;
}
|