2015-04-03 101 views
0

我想减去两个日期时间值。我从表单中分别收集它们,并将它们连接在C#中。结果在文本框中显示为小时格式,如“23:00”。如何在C#中减去两个日期时间值?

这里是我的尝试:

string start = StartDateTxtBox.Text+" "+StartHourDrop.Text+":"+StartMinuteDrop.Text+":00"; 
string End = EndDateTxtBox.Text + " " + EndHourDrop.Text + ":" + EndMinuteDrop.Text + ":00"; 

DateTime allstart = DateTime.Parse(start); 
DateTime allEnd = DateTime.Parse(End); 

Int32 MinuteDiff = Convert.ToInt32(allEnd.Subtract(allstart).TotalMinutes); 
Int32 Hour = MinuteDiff/60/24; 
DateTime conversiontotime = System.Convert.ToDateTime(Hour); 
LastID.Text = conversiontotime.ToString(); 

但它不`吨的工作。

是否有另一种(简单)的方法来做到这一点,或者有人可以告诉我我的代码中的问题是什么?

+3

你是什么意思_doesn't work_?现在什么是准确的工作?你得到任何异常或错误信息?什么是你的“CurrentCulture”?什么是你的texbox值?你能否更具体地说明你的问题? – 2015-04-03 11:49:40

+0

从'Int32'到'DateTime'的转换无效。 – 2015-04-03 17:16:46

回答

4
DateTime allstart = DateTime.Parse("03/04/2015 09:15"); 
    DateTime allEnd = DateTime.Parse("03/04/2015 09:37"); 
    TimeSpan tsdiff = allEnd - allstart; 
    LastID.Text = tsdiff.ToString(); 
+0

基本上,是的,'TimeSpan'是OP所需要的,但是这并不是因为OP想要的'23:00'而得到的结果。并且您的解析操作不保证成功。 – 2015-04-03 12:04:17

+0

感谢您的帮助:) – 2015-04-03 17:23:28