3
0
Fork 0
forked from suyu/suyu

time_zone: Use std::chrono::seconds for strong typing.

This commit is contained in:
bunnei 2020-05-12 18:44:07 -04:00
parent 3c8cd62b0d
commit bba54e1880
3 changed files with 5 additions and 4 deletions

View file

@ -37,13 +37,13 @@ static int ConvertOsTimeZoneOffsetToInt(const std::string& timezone) {
} }
} }
int GetCurrentOffsetSeconds() { std::chrono::seconds GetCurrentOffsetSeconds() {
const int offset{ConvertOsTimeZoneOffsetToInt(GetOsTimeZoneOffset())}; const int offset{ConvertOsTimeZoneOffsetToInt(GetOsTimeZoneOffset())};
int seconds{(offset / 100) * 60 * 60}; // Convert hour component to seconds int seconds{(offset / 100) * 60 * 60}; // Convert hour component to seconds
seconds += (offset % 100) * 60; // Convert minute component to seconds seconds += (offset % 100) * 60; // Convert minute component to seconds
return seconds; return std::chrono::seconds{seconds};
} }
} // namespace Common::TimeZone } // namespace Common::TimeZone

View file

@ -4,6 +4,7 @@
#pragma once #pragma once
#include <chrono>
#include <string> #include <string>
namespace Common::TimeZone { namespace Common::TimeZone {
@ -12,6 +13,6 @@ namespace Common::TimeZone {
std::string GetDefaultTimeZone(); std::string GetDefaultTimeZone();
/// Gets the offset of the current timezone (from the default), in seconds /// Gets the offset of the current timezone (from the default), in seconds
int GetCurrentOffsetSeconds(); std::chrono::seconds GetCurrentOffsetSeconds();
} // namespace Common::TimeZone } // namespace Common::TimeZone

View file

@ -25,7 +25,7 @@ static std::chrono::seconds GetSecondsSinceEpoch() {
static s64 GetExternalTimeZoneOffset() { static s64 GetExternalTimeZoneOffset() {
// With "auto" timezone setting, we use the external system's timezone offset // With "auto" timezone setting, we use the external system's timezone offset
if (Settings::GetTimeZoneString() == "auto") { if (Settings::GetTimeZoneString() == "auto") {
return Common::TimeZone::GetCurrentOffsetSeconds(); return Common::TimeZone::GetCurrentOffsetSeconds().count();
} }
return 0; return 0;
} }