aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/datetime/DateTimeController.h
diff options
context:
space:
mode:
authorRiku Isokoski <riksu9000@gmail.com>2023-02-23 19:15:23 +0200
committerRiku Isokoski <riksu9000@gmail.com>2023-02-25 17:37:56 +0200
commit959778d770aedb56d773e7fde07c8c967d5b35eb (patch)
treefe108d7b7bd3d995ecc11198928ea4e1cb6b2f98 /src/components/datetime/DateTimeController.h
parentb63bb798acd9bc40adda78774e1c433ef21995a5 (diff)
DateTimeController: Use std::tm for storing date
Diffstat (limited to 'src/components/datetime/DateTimeController.h')
-rw-r--r--src/components/datetime/DateTimeController.h27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/components/datetime/DateTimeController.h b/src/components/datetime/DateTimeController.h
index b68d18ef..8e3fa8ff 100644
--- a/src/components/datetime/DateTimeController.h
+++ b/src/components/datetime/DateTimeController.h
@@ -2,6 +2,7 @@
#include <cstdint>
#include <chrono>
+#include <ctime>
#include <string>
#include "components/settings/Settings.h"
@@ -47,31 +48,35 @@ namespace Pinetime {
void UpdateTime(uint32_t systickCounter);
uint16_t Year() const {
- return year;
+ return 1900 + localTime.tm_year;
}
Months Month() const {
- return month;
+ return static_cast<Months>(localTime.tm_mon + 1);
}
uint8_t Day() const {
- return day;
+ return localTime.tm_mday;
}
Days DayOfWeek() const {
- return dayOfWeek;
+ int daysSinceSunday = localTime.tm_wday;
+ if (daysSinceSunday == 0) {
+ return Days::Sunday;
+ }
+ return static_cast<Days>(daysSinceSunday);
}
uint8_t Hours() const {
- return hour;
+ return localTime.tm_hour;
}
uint8_t Minutes() const {
- return minute;
+ return localTime.tm_min;
}
uint8_t Seconds() const {
- return second;
+ return localTime.tm_sec;
}
/*
@@ -132,13 +137,7 @@ namespace Pinetime {
std::string FormattedTime();
private:
- uint16_t year = 0;
- Months month = Months::Unknown;
- uint8_t day = 0;
- Days dayOfWeek = Days::Unknown;
- uint8_t hour = 0;
- uint8_t minute = 0;
- uint8_t second = 0;
+ std::tm localTime;
int8_t tzOffset = 0;
int8_t dstOffset = 0;