From 95168c925fc196e5b304a68f64c542ece863f0bf Mon Sep 17 00:00:00 2001 From: Theodoros Katzalis <thodkatz@gmail.com> Date: Mon, 11 Mar 2019 21:11:19 +0200 Subject: [PATCH] The utcTime function is improved --- src/Helpers/TimeHelper.cpp | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/src/Helpers/TimeHelper.cpp b/src/Helpers/TimeHelper.cpp index e902bf54..a6ba81b3 100644 --- a/src/Helpers/TimeHelper.cpp +++ b/src/Helpers/TimeHelper.cpp @@ -29,11 +29,11 @@ uint32_t TimeHelper::mkUTCtime(struct TimeAndDate &TimeInfo) { } struct TimeAndDate TimeHelper::utcTime(uint32_t seconds) { + seconds -= 1546300800; // elapsed seconds between 1/1/2019 00:00:00 (UTC date) struct TimeAndDate TimeInfo = {0}; - // Unix epoch 1/1/1970 00:00:00 - TimeInfo.year = 1970; + TimeInfo.year = 2019; TimeInfo.month = 1; - TimeInfo.day = 1; + TimeInfo.day = 0; TimeInfo.hour = 0; TimeInfo.minute = 0; TimeInfo.second = 0; @@ -61,22 +61,17 @@ struct TimeAndDate TimeHelper::utcTime(uint32_t seconds) { } // calculate days - while (seconds >= SecondsPerDay) { - TimeInfo.day++; - seconds -= SecondsPerDay; - } + TimeInfo.day = seconds/SecondsPerDay; + seconds -= TimeInfo.day * SecondsPerDay; + TimeInfo.day++; // add 1 day because we start count from 1 January(and not 0 January!) // calculate hours - while (seconds >= SecondsPerHour) { - TimeInfo.hour++; - seconds -= SecondsPerHour; - } + TimeInfo.hour = seconds/SecondsPerHour; + seconds -= TimeInfo.hour * SecondsPerHour; // calculate minutes - while (seconds >= SecondsPerMinute) { - TimeInfo.minute++; - seconds -= SecondsPerMinute; - } + TimeInfo.minute = seconds/SecondsPerMinute; + seconds -= TimeInfo.minute * SecondsPerMinute; // calculate seconds TimeInfo.second = seconds; -- GitLab