C# 减去日期返回负数
我有以下代码C# 减去日期返回负数,c#,C#,我有以下代码 _intervals = intervalEndTime.Subtract(intervalStartTime).Hours; intervalEndTime=2009-11-11 16:00 IntervalsStartTime=2009-11-11 08:00 使_间隔包含-8。为什么会是-8?从16小时中减去8小时应该是8小时吗?我可以换成正值8,但有人能解释一下吗 private int calcIntervalRows() { i
_intervals = intervalEndTime.Subtract(intervalStartTime).Hours;
intervalEndTime=2009-11-11 16:00
IntervalsStartTime=2009-11-11 08:00
使_间隔包含-8。为什么会是-8?从16小时中减去8小时应该是8小时吗?我可以换成正值8,但有人能解释一下吗
private int calcIntervalRows()
{
int _intervals = 0;
switch (this.BookingObject.IntervalEntity.IntervalEntityID.Trim())
{
case "DAY":
_intervals = 1;
break;
case "MIN":
_intervals = SplitTime(new TimeSpan(intervalStartTime.Minute - intervalEndTime.Hour, 0, 0), new TimeSpan(this.BookingObject.IntervalValue != null ? this.BookingObject.IntervalValue.Value : 1, 0, 0));
break;
case "HOUR":
_intervals = (int)intervalEndTime.Subtract(intervalStartTime).Hours;
break;
}
return _intervals;
}
/M这对我很有用:
using System;
class Program
{
static void Main()
{
DateTime start = new DateTime(2009, 11, 11, 8, 0, 0);
DateTime end = new DateTime(2009, 11, 11, 16, 0, 0);
Console.WriteLine(end.Subtract(start).Hours);
}
}
请检查您的开始/结束时间是否正确。如果您可以创建一个简短但完整的程序,如上面所述,但这说明了问题所在,这将非常有帮助。它对我很有用:
using System;
class Program
{
static void Main()
{
DateTime start = new DateTime(2009, 11, 11, 8, 0, 0);
DateTime end = new DateTime(2009, 11, 11, 16, 0, 0);
Console.WriteLine(end.Subtract(start).Hours);
}
}
请检查您的开始/结束时间是否正确。如果您可以创建一个简短但完整的程序,如上面所述,但这说明了问题所在,这将非常有帮助。对不起,我在LINQPad中尝试了这个,得到了8
DateTime intervalEndTime = DateTime.Parse("2009-11-11 16:00");
DateTime intervalStartTime = DateTime.Parse("2009-11-11 08:00");
var _intervals = intervalEndTime.Subtract(intervalStartTime).Hours;
_intervals.Dump();
对不起,我在LINQPad试过了,结果得了8分
DateTime intervalEndTime = DateTime.Parse("2009-11-11 16:00");
DateTime intervalStartTime = DateTime.Parse("2009-11-11 08:00");
var _intervals = intervalEndTime.Subtract(intervalStartTime).Hours;
_intervals.Dump();
在尝试获取两次之间的差异时,尤其是在不同的日期,应使用TimeSpan.TotalHours而不是Hours。在尝试获取两次之间的差异时,应使用TimeSpan.TotalHours而不是Hours,尤其是在不同的日子。是否涉及时间旅行?评估中的光标在哪里?如果您在对语句求值之前向我显示这些值,则\u interval中可以包含上一个赋值中的-8。所涉及的两个datetime的datetime类型是什么?如果一个是UTC,另一个是本地的,这就可以解释了。这段代码看起来非常可疑:intervalStartTime.Minute-intervalEndTime.HourAs务实的家伙说,select没有被破坏。有什么更好的可能性-您在减法中发现了错误,或者您的代码中有错误?找到错误。是否涉及时间旅行?评估中的光标在哪里?如果您在对语句求值之前向我显示这些值,则\u interval中可以包含上一个赋值中的-8。所涉及的两个datetime的datetime类型是什么?如果一个是UTC,另一个是本地的,这就可以解释了。这段代码看起来非常可疑:intervalStartTime.Minute-intervalEndTime.HourAs务实的家伙说,select没有被破坏。有什么更好的可能性-您在减法中发现了错误,或者您的代码中有错误?找到bug。