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