2012-01-11 96 views
2

問:如何和。減去輪次

如果我有以下格式.ToString("H:m");兩個時期,我想首先要減去第一階段結束期間,那麼的結果。像例如:

13:00 ---->第一段時間。

13.45 ----> Last period。

結果45 ---->輪60

如果結果= 75例如隨後一輪120

+0

這只是一個非常複雜的說法,你想輪到最近的一分鐘? – Yuck 2012-01-11 12:54:56

+0

你叫「ToString」的原始類型是什麼?你爲什麼不能使用這些? – Oded 2012-01-11 12:56:30

+0

原來是'string' – 2012-01-11 12:57:33

回答

3

像這樣

var t1 = TimeSpan.Parse("13:00").TotalMinutes; 
var t2 = TimeSpan.Parse("13:45").TotalMinutes; 
var round = (1 + ((int)(t2 - t1)/60)) * 60; //Assuming t2 is always greater than t1 

希望這是你在找什麼。

+0

,非常感謝。你能解釋一下這個方程嗎? – 2012-01-11 13:34:10

+1

t1&t2是'double',所以轉換(t2 - t1)爲'int',現在如果這是45,除以60將得到結果0,並且對於45,你想要60.現在如果t2 - t1是75,師將爲1,並且75將四捨五入爲120。 – 2012-01-12 06:55:02

0

您可以使用datetime.parse獲得了前兩個datetime對象和上一期 然後用lastperiod減去它們(第一期) 這將返回ua時間跨度對象 然後您可以按需要將它舍入它

+1

-1 DateTime將起作用,但TimeSpan更合適,因爲@just_name具有「H:m」格式的字符串。 – 2012-01-11 13:21:31

+0

好吧,你可以使用datetime.parseexact()。你可以在投票結束之前認真考慮這個作品 – 2012-01-13 17:42:29