diff options
author | lat9nq <22451773+lat9nq@users.noreply.github.com> | 2023-07-12 08:34:02 +0200 |
---|---|---|
committer | lat9nq <22451773+lat9nq@users.noreply.github.com> | 2023-07-12 08:34:02 +0200 |
commit | 13755c09036aefe9209360bf0a94c3e2a83e12b8 (patch) | |
tree | 893fcca0318e4e7162f875e8f6d44d36f29ff942 /src/common | |
parent | settings: Disable C++20 tzdb path on MinGW (diff) | |
download | yuzu-13755c09036aefe9209360bf0a94c3e2a83e12b8.tar yuzu-13755c09036aefe9209360bf0a94c3e2a83e12b8.tar.gz yuzu-13755c09036aefe9209360bf0a94c3e2a83e12b8.tar.bz2 yuzu-13755c09036aefe9209360bf0a94c3e2a83e12b8.tar.lz yuzu-13755c09036aefe9209360bf0a94c3e2a83e12b8.tar.xz yuzu-13755c09036aefe9209360bf0a94c3e2a83e12b8.tar.zst yuzu-13755c09036aefe9209360bf0a94c3e2a83e12b8.zip |
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/time_zone.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/common/time_zone.cpp b/src/common/time_zone.cpp index a25f8b040..1ee63bf80 100644 --- a/src/common/time_zone.cpp +++ b/src/common/time_zone.cpp @@ -35,11 +35,13 @@ std::string GetDefaultTimeZone() { // Results are not comparable to seconds since Epoch static std::time_t TmSpecToSeconds(const struct std::tm& spec) { + const int year = spec.tm_year - 1; // Years up to now + const int leap_years = year / 4 - year / 100; std::time_t cumulative = spec.tm_year; - cumulative = cumulative * 365 + spec.tm_yday; // Years to days - cumulative = cumulative * 24 + spec.tm_hour; // Days to hours - cumulative = cumulative * 60 + spec.tm_min; // Hours to minutes - cumulative = cumulative * 60 + spec.tm_sec; // Minutes to seconds + cumulative = cumulative * 365 + leap_years + spec.tm_yday; // Years to days + cumulative = cumulative * 24 + spec.tm_hour; // Days to hours + cumulative = cumulative * 60 + spec.tm_min; // Hours to minutes + cumulative = cumulative * 60 + spec.tm_sec; // Minutes to seconds return cumulative; } |