VOID SystemTime_Difference(SYSTEMTIME const& st1, SYSTEMTIME const& st2, SYSTEMTIME *lpRet)
{
FILETIME ft1;
SystemTimeToFileTime(&st1, &ft1);
ULARGE_INTEGER const u1 = { ft1.dwLowDateTime, ft1.dwHighDateTime };
FILETIME ft2;
SystemTimeToFileTime(&st2, &ft2);
ULARGE_INTEGER const u2 = { ft2.dwLowDateTime, ft2.dwHighDateTime };
ULARGE_INTEGER u3;
u3.QuadPart = max(u1.QuadPart, u2.QuadPart) - min(u1.QuadPart, u2.QuadPart);
FILETIME const ft3 = { u3.LowPart, u3.HighPart };
SYSTEMTIME st3;
FileTimeToSystemTime(&ft3, &st3);
// FILETIME's starting point is 1601-01-01
st3.wYear -= 1601;
st3.wMonth -= 1;
st3.wDay -= 1;
st3.wDayOfWeek = 0; // useless for this purpose, make it always 0 so it's always ignored
CopyMemory(lpRet, &st3, sizeof(SYSTEMTIME));
return;
}
SystemTime_Difference
最新推荐文章于 2022-05-05 15:02:59 发布