1#include <time.h>23#include "../libc.h"4#undef localtime56struct tm *7localtime(const time_t *timep)8{9 int dst;10 time_t t;11 long off;12 char *name;13 struct tm *tm;1415 _tzset();16 t = *timep - _timezone;17 tm = gmtime(&t);1819 if (_isdst(tm)) {20 dst = 1;21 off = _dstzone;22 name = _tzname[1];23 t = *timep - off;24 tm = gmtime(&t);25 } else {26 dst = 0;27 off = _timezone;28 name = _tzname[0];29 }3031 tm->tm_zone = name;32 tm->tm_isdst = dst;33 tm->tm_gmtoff = off;3435 return tm;36}