2012-01-11 100 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