2016-07-15 109 views
0

在C#團結我想做時間減去時間。 下面我有一個例子:如何使用C#減去時間戳

Time1: 
int Hour = 12; 
int Minutes = 0; 
Int Seconds = 0; 

Time2: 
int LastHour = 1; 
int LastMinutes = 3; 
int LastSeconds = 20; 

其實我想要的結果是象下面這樣:

Result: 
int ResultHour = 10; 
int ResultMinutes = 56; 
int ResultSeconds = 40; 

如果時間1 - 時間2會不會得到這樣的結果

如何做到這一點在C#統一?

+0

爲什麼你會想這樣做在一個視頻遊戲? – Fattie

+1

@Dennis Liu考慮到你的另一個問題,你將存儲UNIX時間戳,你被誤導成TimeSpan,你不需要它。只需減去新的時間戳和舊的時間戳,檢查結果是否大於某個時間段(60分鐘一分鐘,3600小時等),就是這樣。 – Everts

+0

是@JoeBlow,因爲我想計算定時器。例如:如果當我玩定時器在00:00:60開始時,然後當玩定時器開始倒計時00:00:59 00:00:58 00:00:57 00:00:56 00:00:55然後我退出遊戲。然後我延遲玩3秒。當我在3秒後播放時,定時器從00:00:52 00:00:51 00:00:50開始倒計時。 –

回答

4

可以使用TimeSpan結構:

var time1 = new TimeSpan(12, 0, 0); 
var time2 = new TimeSpan(10, 56, 40); 

var result = time1 - time2; // will be 01:03:20 

要得到具體時間部分,訪問resultHoursMinutesSeconds性能。

1

時間跨度是你的方法:

TimeSpan result = (new TimeSpan(Hour, Minutes, Seconds) 
       - new TimeSpan(LastHour, LastMinutes, LastSeconds)); 

int ResultHour = result.Hours; 
int ResultMinutes = result.Minutes; 
int ResultSeconds = result.Seconds;