diff options
| author | Stefan Boberg <[email protected]> | 2022-04-25 11:59:45 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2022-04-25 11:59:45 +0200 |
| commit | 21c9ec50b57821d150a3ba61ccff51a55383e031 (patch) | |
| tree | 2acf72b77c32cc3dc3e3544c1767953acd2848f2 /zencore/compactbinary.cpp | |
| parent | Added option to use Catch2 framework for tests (diff) | |
| parent | Compute tweaks (#78) (diff) | |
| download | zen-21c9ec50b57821d150a3ba61ccff51a55383e031.tar.xz zen-21c9ec50b57821d150a3ba61ccff51a55383e031.zip | |
Merge from main
Diffstat (limited to 'zencore/compactbinary.cpp')
| -rw-r--r-- | zencore/compactbinary.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/zencore/compactbinary.cpp b/zencore/compactbinary.cpp index 05ae32f2b..aa87fb4cb 100644 --- a/zencore/compactbinary.cpp +++ b/zencore/compactbinary.cpp @@ -60,22 +60,27 @@ GetPlatformToDateTimeBiasInSeconds() return uint64_t(double(PlatformEpochYear - DateTimeEpochYear) * 365.2425) * 86400; } -DateTime -DateTime::Now() +uint64_t +DateTime::NowTicks() { - static const uint64_t EpochBias = GetPlatformToDateTimeBiasInSeconds(); - static const uint64_t SecsTo100nsTicks = int64_t(10e9 / 100); + static constexpr uint64_t EpochBias = GetPlatformToDateTimeBiasInSeconds(); #if ZEN_PLATFORM_WINDOWS FILETIME SysTime; - GetSystemTimeAsFileTime(&SysTime); - return DateTime{(EpochBias * SecsTo100nsTicks) + (uint64_t(SysTime.dwHighDateTime) << 32) | SysTime.dwLowDateTime}; + GetSystemTimePreciseAsFileTime(&SysTime); + return (EpochBias * TimeSpan::TicksPerSecond) + ((uint64_t(SysTime.dwHighDateTime) << 32) | SysTime.dwLowDateTime); #else int64_t SecondsSinceUnixEpoch = time(nullptr); - return DateTime{(EpochBias + SecondsSinceUnixEpoch) * SecsTo100nsTicks}; + return (EpochBias + SecondsSinceUnixEpoch) * TimeSpan::TicksPerSecond; #endif } +DateTime +DateTime::Now() +{ + return DateTime{NowTicks()}; +} + void DateTime::Set(int Year, int Month, int Day, int Hour, int Minute, int Second, int MilliSecond) { |