From fd04aacee17b348da206c13a550dc1029669805f Mon Sep 17 00:00:00 2001 From: rsc Date: Sun, 23 Nov 2003 18:12:54 +0000 Subject: Various additions and fixes. --- src/lib9/ctime.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/lib9/ctime.c (limited to 'src/lib9/ctime.c') diff --git a/src/lib9/ctime.c b/src/lib9/ctime.c new file mode 100644 index 00000000..e9d971bf --- /dev/null +++ b/src/lib9/ctime.c @@ -0,0 +1,51 @@ +#include +#include + +static +void +ct_numb(char *cp, int n) +{ + + cp[0] = ' '; + if(n >= 10) + cp[0] = (n/10)%10 + '0'; + cp[1] = n%10 + '0'; +} + +char* +asctime(Tm *t) +{ + char *ncp; + static char cbuf[30]; + + strcpy(cbuf, "Thu Jan 01 00:00:00 GMT 1970\n"); + ncp = &"SunMonTueWedThuFriSat"[t->wday*3]; + cbuf[0] = *ncp++; + cbuf[1] = *ncp++; + cbuf[2] = *ncp; + ncp = &"JanFebMarAprMayJunJulAugSepOctNovDec"[t->mon*3]; + cbuf[4] = *ncp++; + cbuf[5] = *ncp++; + cbuf[6] = *ncp; + ct_numb(cbuf+8, t->mday); + ct_numb(cbuf+11, t->hour+100); + ct_numb(cbuf+14, t->min+100); + ct_numb(cbuf+17, t->sec+100); + ncp = t->zone; + cbuf[20] = *ncp++; + cbuf[21] = *ncp++; + cbuf[22] = *ncp; + if(t->year >= 100) { + cbuf[24] = '2'; + cbuf[25] = '0'; + } + ct_numb(cbuf+26, t->year+100); + return cbuf; +} + +char* +ctime(long t) +{ + return asctime(localtime(t)); +} + -- cgit v1.2.3