diff options
| author | Joe Kirchoff <[email protected]> | 2022-04-14 11:58:08 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-04-14 11:58:08 -0700 |
| commit | c07ab0b4114a73de3665492c5b62061a8877e25a (patch) | |
| tree | 664f90dd73302239efa955412759fe59604ff268 /zencore/compactbinary.cpp | |
| parent | clang format (diff) | |
| download | zen-c07ab0b4114a73de3665492c5b62061a8877e25a.tar.xz zen-c07ab0b4114a73de3665492c5b62061a8877e25a.zip | |
Compute updates (#74)
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 31d449c41..ffc1da10c 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) { |