From ecce6770b7cea29b47586e564baf965ef2e07621 Mon Sep 17 00:00:00 2001 From: MonsterDruide1 <5958456@gmail.com> Date: Sat, 16 May 2026 13:17:45 +0200 Subject: [PATCH 1/2] time: Implement `DateTime::DateTime(const DateTimeUtc&)` --- include/time/seadDateTime.h | 1 + modules/src/time/seadDateTime.cpp | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/include/time/seadDateTime.h b/include/time/seadDateTime.h index 6054e46b..1ce82146 100644 --- a/include/time/seadDateTime.h +++ b/include/time/seadDateTime.h @@ -16,6 +16,7 @@ class DateTime DateTime(const CalendarTime::Year& year, const CalendarTime::Month& month, const CalendarTime::Day& day, const CalendarTime::Hour& hour, const CalendarTime::Minute& minute, const CalendarTime::Second& second); + DateTime(const DateTimeUtc& unused); DateTime& operator+=(DateSpan span) { diff --git a/modules/src/time/seadDateTime.cpp b/modules/src/time/seadDateTime.cpp index a0e8e03a..58b2bae1 100644 --- a/modules/src/time/seadDateTime.cpp +++ b/modules/src/time/seadDateTime.cpp @@ -126,6 +126,26 @@ DateTime::DateTime(const CalendarTime::Year& year, const CalendarTime::Month& mo setUnixTime(year, month, day, hour, minute, second); } +DateTime::DateTime(const DateTimeUtc& unused) +{ +#ifdef NNSDK + initializeSystemTimeModule(); + + nn::time::CalendarTime ctime; + // BUG: uses uninitialized `mUnixTime` instead of parameter `time`. + nn::time::PosixTime time = {mUnixTime}; + nn::time::ToCalendarTime(&ctime, nullptr, time); + + const auto year = CalendarTime::Year(ctime.year); + const auto month = CalendarTime::Month::makeFromValueOneOrigin(ctime.month); + const auto day = CalendarTime::Day(ctime.day); + const auto hour = CalendarTime::Hour(ctime.hour); + const auto minute = CalendarTime::Minute(ctime.minute); + const auto second = CalendarTime::Second(ctime.second); + setUnixTime(year, month, day, hour, minute, second); +#endif +} + u64 DateTime::setNow() { #ifdef NNSDK From 08af81a46fdfbe8fe1fb06b1888b71f37883361e Mon Sep 17 00:00:00 2001 From: MonsterDruide1 <5958456@gmail.com> Date: Sat, 16 May 2026 13:20:57 +0200 Subject: [PATCH 2/2] fix compiler warning/error --- modules/src/time/seadDateTime.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/src/time/seadDateTime.cpp b/modules/src/time/seadDateTime.cpp index 58b2bae1..2ddd5808 100644 --- a/modules/src/time/seadDateTime.cpp +++ b/modules/src/time/seadDateTime.cpp @@ -126,7 +126,7 @@ DateTime::DateTime(const CalendarTime::Year& year, const CalendarTime::Month& mo setUnixTime(year, month, day, hour, minute, second); } -DateTime::DateTime(const DateTimeUtc& unused) +DateTime::DateTime([[maybe_unused]] const DateTimeUtc& unused) { #ifdef NNSDK initializeSystemTimeModule();