2011-02-02 26 views
0

我有這個DateTime對象(更新),它被設置爲DateTime.now,當我更新我的應用程序。更新時間和分鐘數?

我也有這個timerTick事件,每5秒調用一次,它應該檢查多少分鐘前,更新是。

我已經試過:

if ((DateTime.Now - Updated).Minutes > 0) 
{ 
    updateTextBlock.Text = "updated " + ((DateTime.Now - Updated).Minutes).ToString() + " minutes ago";   
} 

但它似乎並沒有正常工作。沒有更好的方法來做到這一點?

/R

+0

發生了什麼呢?你預期會發生什麼? – Oded 2011-02-02 17:53:47

+0

對我來說看起來不錯,但是......你確定這個錯誤不是在某處不同嗎?而你的意思是「它似乎沒有正常工作」?輸出? – 2011-02-02 17:54:26

回答

9

我懷疑你想TotalMinutes而不是Minutes。否則,您只能獲得-59至59範圍內的值。

您可能還想考慮使用UtcNow而不是Now - 否則由於時區更改(用戶更改時間區域或時區更改其UTC時間偏移,通常爲夏令時)。

1

您可能正在尋找TotalMinutes,而不僅僅是MinutesTotalMinutes會給你在區間分鐘的總數,而Minutes只給0-59(因爲你也有Hours等)

0

一種方式我沒有類似的東西,用TimeSpan

我有兩個變量timePassedtickTime

我想去設置tickTime爲5秒TimeSpantimePassed爲0

TimeSpan tickTime = new TimeSpan(0,0,0,5); // 5 seconds 
TimeSpan timePassed = new TimeSpan(0,0,0,0); // 0 seconds 

然後在處理程序記號事件我想補充tickTimetimePassed

timePassed = timePassed.Add(tickTime); \\ adds 5 seconds to the timePassed TimeSpan 

然後你可以使用timePassed來獲取時間,因爲更新。 希望這有助於

2

您可能會發現使用System.Diagnostics.StopWatch實例可以更輕鬆地跟蹤自任何特定起點以來經過了多長時間。

它比DateTime對象上的數學運算更可靠和準確,因爲如果有可用的話,它將使用硬件的高分辨率定時器。