#include <u.h> | |
#include <libc.h> | |
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) | |
{ | |
int i; | |
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; | |
for(i=0; i<3; i++) | |
if(ncp[i] == 0) | |
break; | |
for(; i<3; i++) | |
ncp[i] = '?'; | |
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)); | |
} | |