SystemTimeToVariantTime with milliseconds
<< Back
For reason that is not explained in the offical documentation,
SystemTimeToVariantTime will just ignore the millisecond part. Let's have a version of SystemTimeToVariantTime that will preserve the millisecond part!
INT SystemTimeToVariantTimeEx(const LPSYSTEMTIME lpSystemTime, DOUBLE* pvDateTime)
{
DOUBLE vDateTime;
INT iResult;
iResult = SystemTimeToVariantTime(lpSystemTime, pvDateTime);
if (iResult)
{
if (lpSystemTime->wMilliseconds < 1000)
{
vDateTime = lpSystemTime->wMilliseconds;
vDateTime /= 86400000.0;
if (*pvDateTime < 0.0) *pvDateTime -= vDateTime;
else *pvDateTime += vDateTime;
}
return 0;
}
return iResult;
}