#include "time.h"
#include <stdio.h>
static struct tm static_tm;
struct tm __attribute__ ((weak, visibility ("default"))) *gmtime(const time_t *timep)
{
return __make_tm(timep, __utc_tz, &static_tm);
}
struct tm __attribute__ ((weak, visibility ("default"))) *localtime(const time_t *timep)
{
__tzset();
return __make_tm(timep, __current_tz, &static_tm);
}
time_t __attribute__ ((weak, visibility ("default"))) mktime(struct tm *tm)
{
__tzset();
return __make_time(tm, __current_tz);
}
char __attribute__ ((weak, visibility ("default"))) *asctime(const struct tm *tm)
{
static char wday_name[7][3] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
static char mon_name[12][3] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
static char result[26];
sprintf(result, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",
wday_name[tm->tm_wday],
mon_name[tm->tm_mon],
tm->tm_mday, tm->tm_hour,
tm->tm_min, tm->tm_sec,
1900 + tm->tm_year);
return result;
}
char __attribute__ ((weak, visibility ("default"))) *ctime(const time_t *timep)
{
struct tm *tm;
if (!(tm = localtime(timep)))
return NULL;
return asctime(tm);
}