diff options
| author | Riku Isokoski <riksu9000@gmail.com> | 2023-02-23 19:15:23 +0200 |
|---|---|---|
| committer | Riku Isokoski <riksu9000@gmail.com> | 2023-02-25 17:37:56 +0200 |
| commit | 959778d770aedb56d773e7fde07c8c967d5b35eb (patch) | |
| tree | fe108d7b7bd3d995ecc11198928ea4e1cb6b2f98 /src/components/datetime/DateTimeController.cpp | |
| parent | b63bb798acd9bc40adda78774e1c433ef21995a5 (diff) | |
DateTimeController: Use std::tm for storing date
Diffstat (limited to 'src/components/datetime/DateTimeController.cpp')
| -rw-r--r-- | src/components/datetime/DateTimeController.cpp | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/src/components/datetime/DateTimeController.cpp b/src/components/datetime/DateTimeController.cpp index 7ebb7b19..9e9fb6e4 100644 --- a/src/components/datetime/DateTimeController.cpp +++ b/src/components/datetime/DateTimeController.cpp @@ -1,5 +1,4 @@ #include "components/datetime/DateTimeController.h" -#include <date/date.h> #include <libraries/log/nrf_log.h> #include <systemtask/SystemTask.h> @@ -37,8 +36,6 @@ void DateTime::SetTime(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, NRF_LOG_INFO("%d %d %d ", hour, minute, second); UpdateTime(previousSystickCounter); - NRF_LOG_INFO("* %d %d %d ", this->hour, this->minute, this->second); - NRF_LOG_INFO("* %d %d %d ", this->day, this->month, this->year); systemTask->PushMessage(System::Messages::OnNewTime); } @@ -72,18 +69,11 @@ void DateTime::UpdateTime(uint32_t systickCounter) { currentDateTime += std::chrono::seconds(correctedDelta); uptime += std::chrono::seconds(correctedDelta); - auto dp = date::floor<date::days>(currentDateTime); - auto time = date::make_time(currentDateTime - dp); - auto yearMonthDay = date::year_month_day(dp); + std::time_t currentTime = std::chrono::system_clock::to_time_t(currentDateTime); + localTime = *std::localtime(¤tTime); - year = static_cast<int>(yearMonthDay.year()); - month = static_cast<Months>(static_cast<unsigned>(yearMonthDay.month())); - day = static_cast<unsigned>(yearMonthDay.day()); - dayOfWeek = static_cast<Days>(date::weekday(yearMonthDay).iso_encoding()); - - hour = time.hours().count(); - minute = time.minutes().count(); - second = time.seconds().count(); + auto minute = Minutes(); + auto hour = Hours(); if (minute == 0 && !isHourAlreadyNotified) { isHourAlreadyNotified = true; @@ -114,11 +104,11 @@ void DateTime::UpdateTime(uint32_t systickCounter) { } const char* DateTime::MonthShortToString() const { - return MonthsString[static_cast<uint8_t>(month)]; + return MonthsString[static_cast<uint8_t>(Month())]; } const char* DateTime::DayOfWeekShortToString() const { - return DaysStringShort[static_cast<uint8_t>(dayOfWeek)]; + return DaysStringShort[static_cast<uint8_t>(DayOfWeek())]; } const char* DateTime::MonthShortToStringLow(Months month) { @@ -126,7 +116,7 @@ const char* DateTime::MonthShortToStringLow(Months month) { } const char* DateTime::DayOfWeekShortToStringLow() const { - return DaysStringShortLow[static_cast<uint8_t>(dayOfWeek)]; + return DaysStringShortLow[static_cast<uint8_t>(DayOfWeek())]; } void DateTime::Register(Pinetime::System::SystemTask* systemTask) { @@ -136,6 +126,8 @@ void DateTime::Register(Pinetime::System::SystemTask* systemTask) { using ClockType = Pinetime::Controllers::Settings::ClockType; std::string DateTime::FormattedTime() { + auto hour = Hours(); + auto minute = Minutes(); // Return time as a string in 12- or 24-hour format char buff[9]; if (settingsController.GetClockType() == ClockType::H12) { |
