X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2Ftime.c;h=8266ab9e69880f58a6aa8496e296e26a2d3a6897;hb=ac2a3bee4ffe024a919c1b360cc888679a45f326;hp=5d6f45fed8bf1882fa20c8a3ba609a0251af897f;hpb=30698371b0fdddc2978f662905b55b61274a8512;p=fw%2Fsdcc diff --git a/device/lib/time.c b/device/lib/time.c old mode 100755 new mode 100644 index 5d6f45fe..8266ab9e --- a/device/lib/time.c +++ b/device/lib/time.c @@ -69,18 +69,21 @@ static char ascTimeBuffer[32]; static void CheckTime(struct tm *timeptr) { // we could do some normalization here, e.g. // change 40 october to 9 november + #if !__TIME_UNSIGNED if (timeptr->tm_sec<0) timeptr->tm_sec=0; - else if (timeptr->tm_sec>59) timeptr->tm_sec=59; if (timeptr->tm_min<0) timeptr->tm_min=0; - else if (timeptr->tm_min>59) timeptr->tm_min=59; if (timeptr->tm_hour<0) timeptr->tm_hour=0; - else if (timeptr->tm_hour>23) timeptr->tm_hour=23; if (timeptr->tm_wday<0) timeptr->tm_wday=0; - else if (timeptr->tm_wday>6) timeptr->tm_wday=6; + if (timeptr->tm_mon<0) timeptr->tm_mon=0; + #endif + + if (timeptr->tm_sec>59) timeptr->tm_sec=59; + if (timeptr->tm_min>59) timeptr->tm_min=59; + if (timeptr->tm_hour>23) timeptr->tm_hour=23; + if (timeptr->tm_wday>6) timeptr->tm_wday=6; if (timeptr->tm_mday<1) timeptr->tm_mday=1; else if (timeptr->tm_mday>31) timeptr->tm_mday=31; - if (timeptr->tm_mon<0) timeptr->tm_mon=0; - else if (timeptr->tm_mon>11) timeptr->tm_mon=11; + if (timeptr->tm_mon>11) timeptr->tm_mon=11; if (timeptr->tm_year<0) timeptr->tm_year=0; } @@ -176,26 +179,26 @@ time_t mktime(struct tm *timeptr) { CheckTime(timeptr); // seconds from 1970 till 1 jan 00:00:00 this year - seconds= (year-1970)*60*60*24*365; + seconds= (year-1970)*(60*60*24L*365); // add extra days for leap years for (i=1970; itm_mday-1*60*60*24; - seconds+= timeptr->tm_hour*60*60; + seconds+= (timeptr->tm_mday-1)*60*60*24L; + seconds+= timeptr->tm_hour*60*60L; seconds+= timeptr->tm_min*60; seconds+= timeptr->tm_sec; return seconds;