我想使用Windows API獲取時區差異。我使用的代碼時區差異變得難以置信
TIME_ZONE_INFORMATION TimeZoneInfo;
GetTimeZoneInformation(&TimeZoneInfo);
float TimeZoneDifference = -(float(TimeZoneInfo.Bias)/60);
我使用(UTC +5:30)時區。
輸出:5.50000 預期輸出:5.30000
我想使用Windows API獲取時區差異。我使用的代碼時區差異變得難以置信
TIME_ZONE_INFORMATION TimeZoneInfo;
GetTimeZoneInformation(&TimeZoneInfo);
float TimeZoneDifference = -(float(TimeZoneInfo.Bias)/60);
我使用(UTC +5:30)時區。
輸出:5.50000 預期輸出:5.30000
偏差是在分鐘(Dev center Time zone info)
所以的5偏壓:30,爲330分鐘。除以60代表你的代碼,你會得到:5.5。一個五個半小時的十進制表示。
如果你上獲得5.3堅持,嘗試:
float hours = trunc(float(TimeZoneInfo.Bias)/60);
float nonDecimalHourFraction = float(TimeZoneInfo.Bias % 60)/100;
float TimeZoneDifference = -(hours + nonDecimalHourFraction);
我已經試過了,現在時間差異來了6.0000 – user2499879
我已更新添加缺少的浮點轉換。 –
「%」左邊的值必須是int。當我把它作爲INT它的輸出將是6.0000。看到錯誤「錯誤C2296:'%':非法,左操作數的類型'浮動'」 – user2499879
半小時爲0.5小時。將其轉換爲HH:mm格式取決於您。 –