1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-27 15:29:46 +00:00
cc65/test/val/time.c
Oliver Schmidt 753b48647f
Increased consistency.
The test program works as-is only if the timezone isn't set (to something different than UTC). However, using localtime() instead of gmtime() makes it at least consistent in that the original time (given to mktime()) is identical to the time retrieved.
2018-08-02 15:45:57 +02:00

37 lines
880 B
C

#include <time.h>
#include <stdio.h>
int main(void)
{
int failures = 0;
struct tm timeinfo;
time_t rawtime;
struct tm *p_timeinfo;
timeinfo.tm_year = 2020 - 1900;
timeinfo.tm_mon = 12 - 1;
timeinfo.tm_mday = 24;
timeinfo.tm_hour = 10;
timeinfo.tm_min = 30;
timeinfo.tm_sec = 50;
timeinfo.tm_isdst = 0;
rawtime = mktime(&timeinfo);
failures += !(rawtime == 1608805850);
p_timeinfo = localtime(&rawtime);
failures += !(p_timeinfo->tm_year == timeinfo.tm_year);
failures += !(p_timeinfo->tm_mon == timeinfo.tm_mon);
failures += !(p_timeinfo->tm_mday == timeinfo.tm_mday);
failures += !(p_timeinfo->tm_hour == timeinfo.tm_hour);
failures += !(p_timeinfo->tm_min == timeinfo.tm_min);
failures += !(p_timeinfo->tm_sec == timeinfo.tm_sec);
printf("%lu\n%s%d\n", rawtime, asctime(p_timeinfo), failures);
return failures;
}