Ух ты, я думал, что знаю свой C ++, но это странно
Эта функция возвращает беззнаковое целое, поэтому я подумал, что это означает, что я никогда не получу отрицательное число, верное, верно?
Функция определяетсколько часов впереди или позади UTC.Так что для меня я нахожусь в Австралии, Сиднее, поэтому я +10 по Гринвичу, что означает, что я UTC = LocalTime + (-10).Поэтому GetTimeZoneInformation правильно определяет, что я -10.
НО моя функция возвращает беззнаковое целое, поэтому не должна ли она возвращать 10, а не -10?
unsigned int getTimeZoneBias()
{
TIME_ZONE_INFORMATION tzInfo;
DWORD res = GetTimeZoneInformation( &tzInfo );
if ( res == TIME_ZONE_ID_INVALID )
{
return (INT_MAX/2);
}
return (unsigned int(tzInfo.Bias / 60)); // convert from minutes to hours
}
TCHAR ch[200];
_stprintf( ch, _T("A: %d\n"), getTimeZoneBias()); // this prints out A: -10
debugLog += _T("Bias: ") + tstring(ch) + _T("\r\n");