25 lines
752 B
C++
25 lines
752 B
C++
#if OS_WINDOWS
|
|
constexpr s64 FILETIME_TO_UNIX = 116444736000000000i64;
|
|
f64 GetUnixTimestamp() {
|
|
FILETIME fileTime;
|
|
GetSystemTimePreciseAsFileTime(&fileTime);
|
|
s64 ticks = ((s64)fileTime.dwHighDateTime << (s64)32) | (s64)fileTime.dwLowDateTime;
|
|
return (ticks - FILETIME_TO_UNIX) / (10.0 * 1000.0 * 1000.0);
|
|
}
|
|
s64 GetUnixTimestampNanoseconds() {
|
|
FILETIME fileTime;
|
|
GetSystemTimePreciseAsFileTime(&fileTime);
|
|
|
|
s64 ticks = ((s64)fileTime.dwHighDateTime << (s64)32)
|
|
| (s64)fileTime.dwLowDateTime; // in 100ns ticks
|
|
s64 unix_time = (ticks - FILETIME_TO_UNIX); // in 100ns ticks
|
|
|
|
s64 unix_time_nanoseconds = unix_time * 100;
|
|
|
|
return unix_time_nanoseconds;
|
|
}
|
|
#endif
|
|
#if OS_LINUX
|
|
|
|
#endif
|