From 243c5a7a305eaf7a7cf936eb6805f44f9802b3a5 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 4 Jul 2018 13:46:27 +0200 Subject: [PATCH] Localtime: add a test main() function to check the output. --- src/localtime.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/localtime.c b/src/localtime.c index a92248ecb..c3564d1b0 100644 --- a/src/localtime.c +++ b/src/localtime.c @@ -57,7 +57,6 @@ void nolocks_localtime(struct tm *tmp, time_t t, time_t tz, int dst) { const time_t secs_day = 3600*24; t -= tz; /* Adjust for timezone. */ - t += 3600+dst; /* Adjust for daylight time. */ time_t days = t / secs_day; /* Days passed since epoch. */ time_t seconds = t % secs_day; /* Remaining seconds. */ @@ -97,3 +96,18 @@ void nolocks_localtime(struct tm *tmp, time_t t, time_t tz, int dst) { tmp->tm_mday = days+1; /* Add 1 since our 'days' is zero-based. */ tmp->tm_year -= 1900; /* Surprisingly tm_year is year-1900. */ } + +#ifdef LOCALTIME_TEST_MAIN +#include + +int main(void) { + tzset(); + time_t t = time(NULL); + struct tm tm; + char buf[1024]; + + nolocks_localtime(&tm,t,timezone,daylight); + strftime(buf,sizeof(buf),"%d %b %H:%M:%S",&tm); + printf("[timezone: %d, dl: %d] %s\n", (int)timezone, (int)daylight, buf); +} +#endif