root / prex-0.9.0 / usr / lib / libc / time / asctime_r.c @ 03e9c04a
History | View | Annotate | Download (1000 Bytes)
1 | 03e9c04a | Brad Neuman | /*
|
---|---|---|---|
2 | ** This file is in the public domain, so clarified as of
|
||
3 | ** 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov).
|
||
4 | */
|
||
5 | |||
6 | #include <sys/time.h> |
||
7 | #include <stdio.h> |
||
8 | #include <time.h> |
||
9 | |||
10 | /*
|
||
11 | ** A la ISO/IEC 9945-1, ANSI/IEEE Std 1003.1, Second Edition, 1996-07-12.
|
||
12 | */
|
||
13 | |||
14 | char *
|
||
15 | asctime_r(timeptr, buf) |
||
16 | register const struct tm * timeptr; |
||
17 | char * buf;
|
||
18 | { |
||
19 | static const char wday_name[][3] = { |
||
20 | "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" |
||
21 | }; |
||
22 | static const char mon_name[][3] = { |
||
23 | "Jan", "Feb", "Mar", "Apr", "May", "Jun", |
||
24 | "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" |
||
25 | }; |
||
26 | const char *wn; |
||
27 | const char *mn; |
||
28 | |||
29 | wn = wday_name[timeptr->tm_wday]; |
||
30 | mn = mon_name[timeptr->tm_mon]; |
||
31 | /*
|
||
32 | ** The X3J11-suggested format is
|
||
33 | ** "%.3s %.3s%3d %02.2d:%02.2d:%02.2d %d\n"
|
||
34 | ** Since the .2 in 02.2d is ignored, we drop it.
|
||
35 | */
|
||
36 | (void)sprintf(buf,
|
||
37 | "%.3s %.3s%3d %02d:%02d:%02d %d\n",
|
||
38 | wn, mn, |
||
39 | timeptr->tm_mday, timeptr->tm_hour, |
||
40 | timeptr->tm_min, timeptr->tm_sec, |
||
41 | 1900 + timeptr->tm_year);
|
||
42 | return buf;
|
||
43 | } |