2
#include <stdlib.h> /* setenv etc. */
11
#if defined(__linux__)
15
#elif defined(__sun__)
25
tm2Tm(struct tm *tm, Tm *bigtm)
29
memset(bigtm, 0, sizeof *bigtm);
30
bigtm->sec = tm->tm_sec;
31
bigtm->min = tm->tm_min;
32
bigtm->hour = tm->tm_hour;
33
bigtm->mday = tm->tm_mday;
34
bigtm->mon = tm->tm_mon;
35
bigtm->year = tm->tm_year;
36
bigtm->wday = tm->tm_wday;
37
strftime(bigtm->zone, sizeof bigtm->zone, "%Z", tm);
39
bigtm->tzoff = tm->tm_gmtoff;
42
if(bigtm->zone[0] == 0){
43
s = getenv("TIMEZONE");
45
strecpy(bigtm->zone, bigtm->zone+4, s);
52
Tm2tm(Tm *bigtm, struct tm *tm)
54
memset(tm, 0, sizeof *tm);
55
tm->tm_sec = bigtm->sec;
56
tm->tm_min = bigtm->min;
57
tm->tm_hour = bigtm->hour;
58
tm->tm_mday = bigtm->mday;
59
tm->tm_mon = bigtm->mon;
60
tm->tm_year = bigtm->year;
61
tm->tm_wday = bigtm->wday;
63
tm->tm_zone = bigtm->zone;
66
tm->tm_gmtoff = bigtm->tzoff;
94
#if !defined(_HAVETIMEGM)
107
s = smprint("TZ=%s", tz);
121
if(strcmp(bigtm->zone, "GMT") == 0 || strcmp(bigtm->zone, "UCT") == 0)
123
return mktime(&tm); /* local time zone */