trying to fix previous fix of timestamp_to_datetime()

This commit is contained in:
Methodius
2023-11-20 22:19:29 +09:00
parent 51a2e638ed
commit bbdda5a3d7

View File

@@ -7,17 +7,19 @@ void timestamp_to_datetime(uint32_t timestamp, FuriHalRtcDateTime* datetime) {
uint32_t days = timestamp / FURI_HAL_RTC_SECONDS_PER_DAY; uint32_t days = timestamp / FURI_HAL_RTC_SECONDS_PER_DAY;
uint32_t seconds_in_day = timestamp % FURI_HAL_RTC_SECONDS_PER_DAY; uint32_t seconds_in_day = timestamp % FURI_HAL_RTC_SECONDS_PER_DAY;
uint16_t year = FURI_HAL_RTC_EPOCH_START_YEAR; datetime->year = FURI_HAL_RTC_EPOCH_START_YEAR;
while(days >= furi_hal_rtc_get_days_per_year(year)) { while(days >= furi_hal_rtc_get_days_per_year(datetime->year)) {
days -= furi_hal_rtc_get_days_per_year(year); days -= furi_hal_rtc_get_days_per_year(datetime->year);
(year)++; (datetime->year)++;
} }
uint8_t month = 1; datetime->month = 1;
while(days >= furi_hal_rtc_get_days_per_month(FURI_HAL_RTC_IS_LEAP_YEAR(year), month)) { while(days >= furi_hal_rtc_get_days_per_month(
days -= furi_hal_rtc_get_days_per_month(FURI_HAL_RTC_IS_LEAP_YEAR(year), month); FURI_HAL_RTC_IS_LEAP_YEAR(datetime->year), datetime->month)) {
(month)++; days -= furi_hal_rtc_get_days_per_month(
FURI_HAL_RTC_IS_LEAP_YEAR(datetime->year), datetime->month);
(datetime->month)++;
} }
datetime->day = days + 1; datetime->day = days + 1;