aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/datetime/DateTimeController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/datetime/DateTimeController.cpp')
-rw-r--r--src/components/datetime/DateTimeController.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/components/datetime/DateTimeController.cpp b/src/components/datetime/DateTimeController.cpp
index 4dc16329..b744fbb2 100644
--- a/src/components/datetime/DateTimeController.cpp
+++ b/src/components/datetime/DateTimeController.cpp
@@ -20,14 +20,7 @@ void DateTime::SetCurrentTime(std::chrono::time_point<std::chrono::system_clock,
UpdateTime(previousSystickCounter); // Update internal state without updating the time
}
-void DateTime::SetTime(uint16_t year,
- uint8_t month,
- uint8_t day,
- uint8_t dayOfWeek,
- uint8_t hour,
- uint8_t minute,
- uint8_t second,
- uint32_t systickCounter) {
+void DateTime::SetTime(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t systickCounter) {
std::tm tm = {
/* .tm_sec = */ second,
/* .tm_min = */ minute,
@@ -36,6 +29,7 @@ void DateTime::SetTime(uint16_t year,
/* .tm_mon = */ month - 1,
/* .tm_year = */ year - 1900,
};
+
tm.tm_isdst = -1; // Use DST value from local time zone
currentDateTime = std::chrono::system_clock::from_time_t(std::mktime(&tm));
@@ -50,6 +44,11 @@ void DateTime::SetTime(uint16_t year,
systemTask->PushMessage(System::Messages::OnNewTime);
}
+void DateTime::SetTimeZone(int8_t timezone, int8_t dst) {
+ tzOffset = timezone;
+ dstOffset = dst;
+}
+
void DateTime::UpdateTime(uint32_t systickCounter) {
// Handle systick counter overflow
uint32_t systickDelta = 0;
@@ -136,6 +135,7 @@ void DateTime::Register(Pinetime::System::SystemTask* systemTask) {
}
using ClockType = Pinetime::Controllers::Settings::ClockType;
+
std::string DateTime::FormattedTime() {
// Return time as a string in 12- or 24-hour format
char buff[9];