2013-08-21 78 views
0

我想使用Windows API獲取時區差異。我使用的代碼時區差異變得難以置信

TIME_ZONE_INFORMATION TimeZoneInfo; 
GetTimeZoneInformation(&TimeZoneInfo); 
float TimeZoneDifference = -(float(TimeZoneInfo.Bias)/60); 

我使用(UTC +5:30)時區。

輸出:5.50000 預期輸出:5.30000

+0

半小時爲0.5小時。將其轉換爲HH:mm格式取決於您。 –

回答

0

偏差是在分鐘(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); 
+0

我已經試過了,現在時間差異來了6.0000 – user2499879

+0

我已更新添加缺少的浮點轉換。 –

+0

「%」左邊的值必須是int。當我把它作爲INT它的輸出將是6.0000。看到錯誤「錯誤C2296:'%':非法,左操作數的類型'浮動'」 – user2499879