gmtime.c - scc - simple c99 compiler
 (HTM) git clone git://git.simple-cc.org/scc
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
 (DIR) README
 (DIR) LICENSE
       ---
       gmtime.c (661B)
       ---
            1 #include <time.h>
            2 
            3 #include "../libc.h"
            4 
            5 #undef gmtime
            6 
            7 struct tm *
            8 gmtime(const time_t *tim)
            9 {
           10         static struct tm tm;
           11         time_t day;
           12         int i;
           13 
           14         tm.tm_sec = *tim % SECDAY;
           15         tm.tm_min = tm.tm_sec / 60;
           16         tm.tm_sec %= 60;
           17         tm.tm_hour = tm.tm_min / 60;
           18         tm.tm_min %= 60;
           19         day = *tim / SECDAY;
           20 
           21         tm.tm_wday = (day + THU) % 7; /* 1/1/1970 was Thursday */
           22 
           23         for (i = EPOCH; day >= _daysyear(i); ++i)
           24                 day -= _daysyear(i);
           25         tm.tm_year = i - 1900;
           26         tm.tm_yday = day;
           27 
           28         _daysmon[FEB] = FEBDAYS(i);
           29         for (i = JAN; day >= _daysmon[i]; i++)
           30                 day -= _daysmon[i];
           31         tm.tm_mon = i;
           32         tm.tm_mday = day + 1;
           33 
           34         tm.tm_isdst = 0;
           35         tm.tm_zone = "GMT";
           36         tm.tm_gmtoff = 0;
           37 
           38         return &tm;
           39 }