diff --git a/src/Helpers/TimeHelper.cpp b/src/Helpers/TimeHelper.cpp index c7ed622eb28b795cfe0de9c696c082f2752abf10..da52cb40fe019b6d91e9888c5c61c53f88ea5e99 100644 --- a/src/Helpers/TimeHelper.cpp +++ b/src/Helpers/TimeHelper.cpp @@ -40,8 +40,8 @@ struct TimeAndDate TimeHelper::utcTime(uint32_t seconds) { // calculate years while (seconds >= (IsLeapYear(TimeInfo.year) ? 366 : 365) * SecondsPerDay) { - TimeInfo.year++; seconds -= (IsLeapYear(TimeInfo.year) ? 366 : 365) * SecondsPerDay; + TimeInfo.year++; } // calculate months @@ -50,6 +50,16 @@ struct TimeAndDate TimeHelper::utcTime(uint32_t seconds) { TimeInfo.month++; seconds -= (DaysOfMonth[i] * SecondsPerDay); i++; + if (i == 1 && IsLeapYear(TimeInfo.year)) { + if (seconds <= (28 * SecondsPerDay)) { + break; + } else { + TimeInfo.month++; + seconds -= 29 * SecondsPerDay; + i++; + } + + } } // calculate days