任何人都可以告诉我如何添加和减去两个Datetime
个对象吗?
这是我的代码
DateTime d1 = Convert.ToDateTime(TextBoxtime1.Text);
DateTime d2 = Convert.ToDateTime(TextBoxtime2.Text);
if (d2 < d1)
{
DateTime d3 = new DateTime();
d3= d3.Date.AddHours(24);
TimeSpan ts = d3 - d1;
string values = ts.ToString();
DateTime d5 = Convert.ToDateTime(values);
DateTime d4 = d5;
TimeSpan ts1 = d4 - d2;
TextBox24.Text=ts1.ToString();
// ...
实际上这两次是出发和到达时间。我希望通过et = d2-d1得到估计的时间,如果是d2
答案 0 :(得分:1)
DateTime
方法(例如您已使用的AddDays
和AddHours
)也接受负值。
因此,如果您想从某个日期删除12小时,则可以执行此操作:
var newDate = oldDate.AddHours(-12);
这是一种做法;根据您的要求,您可能希望使用TimeSpan
方法获取DateTime.Subtract
个对象:
var timeSpan = aDate.Subtract(anotherDate);
修改强>
如果您希望以小时计算两个日期之间的差异,则可以执行以下操作:
var totalHours = Math.Abs(arrivalDateTime.Subtract(departureDateTime).TotalHours);
无论哪个日期是最高值,您总是将总小时数作为正数。
请注意,如果超过一天将两个值分开,结果可能会高于24.这可能是您想要的也可能不是。
答案 1 :(得分:1)
您可以使用
DateTime.Subtract
DateTime.Add
答案 2 :(得分:0)
DateTime d1 = Convert.ToDateTime(TextBoxtime1.Text);
DateTime d2 = Convert.ToDateTime(TextBoxtime2.Text);
if (d2 < d1)
{
TimeSpan result = TimeSpan.FromHours(24) + (d2 - d1);
// ... do as you please with the result
}