如何计算两个时间之间的差异?

3
我有两个文本框,允许用户以(h:mm)的格式输入起始时间和结束时间。我希望在一个标签中返回这两个时间之间的差异。例如,如果用户在第一个文本框中输入1:35,在第二个文本框中输入3:30,然后按下“计算”按钮,它将返回时间1:55。
有什么想法或资源可以实现这个功能吗?我只想计算两个文本框之间的小时和分钟差异,日期和秒数并不重要。

@Pierre-LucPineault,这并不是与链接问题重复,输入值是不同的(带有AM、PM),这需要使用DateTime解析。 - Habib
@Habib,根本问题是相同的;有2个时间值,这些值需要被解析然后相减。这个问题只是另一个问题的简单实例。 - Pierre-Luc Pineault
2个回答

7

解析两个文本框的值为TimeSpan,然后您可以使用-计算它们之间的差异。

TimeSpan ts1 = TimeSpan.Parse(textBox1.Text); //"1:35"
TimeSpan ts2 = TimeSpan.Parse(textBox2.Text); //"3:30"

label.Text = (ts2 - ts1).ToString();         //"1:55:00"

TimeSpan!非常感谢您的回答! - user2112439
@user2112439,不用谢。 - Habib
@Habib:能否像这样得到结果:textbox1.Text=4/26/2015 5:39:09 AM,textBox2.Text=4/26/2015 5:45:24 AM。我想要得到6的结果。(即,我想要计算时间差(5:39:09 - 5:45:24)) - Reshma
@Reshma,这是可能的,使用DateTime.ParseParseExact将日期字符串解析为DateTime,然后进行减法运算。有很多关于DateTime解析并计算它们之间差异的例子。 - Habib

2
如果将输入转换为DateTime对象,您可以像这样计算它们之间的绝对时间:
DateTime.Parse(startDate).Subtract(DateTime.Parse(endDate)).Duration().ToString("hh:mm");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接