1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /* $Id$ */
- #include <time.h>
- #define DATE_STR "??? ??? ?? ??:??:?? ????\n"
- static char *days[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
- static char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
- static char *two_digits();
- static char *four_digits();
- char *
- asctime(tm)
- register struct tm *tm;
- {
- static char buf[32];
- register char *pb = buf, *ps;
-
- strcpy(pb, DATE_STR);
- ps = days[tm->tm_wday];
- while (*ps) *pb++ = *ps++;
- pb++;
- ps = months[tm->tm_mon];
- while (*ps) *pb++ = *ps++;
- pb++;
- pb = two_digits(
- two_digits(
- two_digits(
- two_digits(pb, tm->tm_mday, 0),
- tm->tm_hour, 1),
- tm->tm_min, 1),
- tm->tm_sec, 1);
- four_digits(pb, tm->tm_year+1900);
- return(buf);
- }
- static char *
- two_digits(pb, i, nospace)
- register char *pb;
- {
- *pb = (i / 10) % 10 + '0';
- if (!nospace && *pb == '0') *pb = ' ';
- pb++;
- *pb++ = (i % 10) + '0';
- return ++pb;
- }
- static char *
- four_digits(pb, i)
- register char *pb;
- {
- i %= 10000;
- *pb++ = (i / 1000) + '0';
- i %= 1000;
- *pb++ = (i / 100) + '0';
- i %= 100;
- *pb++ = (i / 10) + '0';
- *pb++ = (i % 10) + '0';
- return ++pb;
- }
|