2014-01-11 60 views
0

這是我的代碼:C# - 知道時間

IdleTime = System.Environment.TickCount - LastInput.dwTime; 
int hour = ((IdleTime + 500)/86400000); 
int min = ((IdleTime + 500)/60000) - (hour * 60); 
int sec = ((IdleTime + 500)/1000) - (min * 60); 

我在跟蹤空閒時間

的秒數工作的計時器有一個空閒計時器,這和最小的作品,但林不知道,如果它會工作一小時24小時我認爲它可能會出現在我身上因爲86400000毫秒毫秒是一天,我有秒和最少從前一次獲取數據像sec從最小值獲取數據。誰能幫忙?

回答

1

我想說

IdleTime = System.Environment.TickCount - LastInput.dwTime; 
int hours = IdleTime/3600000; 
int minutes = IdleTime/60000 - hour * 60; 
int seconds = IdleTime/1000 - min * 60; 

我不知道爲什麼你從IdleTime 500。減去。

+0

我要麼,它的代碼,我下了一個網站,把它變成了第二位,但我在做這個項目2年前,所以,你的代碼似乎也在工作 – user1892884

+1

@ user1892884:500毫秒被添加到空閒時間的原因是輪換秒部分而不是截斷它。 0 - 0.5秒被認爲是0秒,而0.5 - 1秒被認爲是1秒。 –

2

我建議你用TimeSpan型工作,以避免自己做數學題:

int milliseconds = Environment.TickCount - LastInput.dwTime; 
TimeSpan idleTime = TimeSpan.FromMilliseconds(milliseconds + 500); 
int hour = (int) idleTime.TotalHours; 
int minutes = idleTime.Minutes; 
int seconds = idleTime.Seconds;