/[pkg-mixmaster]/trunk/Mix/Src/tests/test-parse_yearmonthday.c
ViewVC logotype

Contents of /trunk/Mix/Src/tests/test-parse_yearmonthday.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 573 - (show annotations) (download)
Sun Aug 17 18:50:58 2003 UTC (9 years, 9 months ago) by weaselp
File MIME type: text/plain
File size: 1138 byte(s)
parse_yearmonthday is ok on Linux, Solaris, FreeBSD and NetBSD, so I assume it is ok
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4
5 #define LINELEN 128
6
7 time_t parse_yearmonthday(char* str)
8 {
9 time_t date;
10 int day, month, year;
11
12 if (sscanf( str, "%d-%d-%d", &year, &month, &day) == 3 ) {
13 struct tm timestruct;
14 char *tz;
15
16 tz = getenv("TZ");
17 #ifdef HAVE_SETENV
18 setenv("TZ", "GMT", 1);
19 #else /* end of HAVE_SETENV */
20 putenv("TZ=GMT");
21 #endif /* else if not HAVE_SETENV */
22 tzset();
23 memset(&timestruct, 0, sizeof(timestruct));
24 timestruct.tm_mday = day;
25 timestruct.tm_mon = month - 1;
26 timestruct.tm_year = year - 1900;
27 date = mktime(&timestruct);
28 #ifdef HAVE_SETENV
29 if (tz)
30 setenv("TZ", tz, 1);
31 else
32 unsetenv("TZ");
33 #else /* end of HAVE_SETENV */
34 if (tz) {
35 char envstr[LINELEN];
36 snprintf(envstr, LINELEN, "TZ=%s", tz);
37 putenv(envstr);
38 } else
39 putenv("TZ=");
40 #endif /* else if not HAVE_SETENV */
41 tzset();
42 return date;
43 } else
44 return -1;
45 }
46
47 int main()
48 {
49 int t;
50
51 t = parse_yearmonthday("2003-04-02");
52 if (t == 1049241600) {
53 printf("OK.\n");
54 exit(0);
55 } else {
56 printf("Failed.\n");
57 exit(1);
58 }
59 }

  ViewVC Help
Powered by ViewVC 1.1.5