【发布时间】:2019-12-09 10:44:29
【问题描述】:
所以我正在尝试检查Order。 ArriveTime 和 OrderDate 之间的差异应该在 10 分钟到 2 小时之间。我将所有内容格式化为我认为正确的格式,但仍然出现错误。
我在ArriveTime 中输入的值是DateTime.Today,在OrderDate 中我输入了DateTime.Now。
代码:
private bool TimerRequirements(IOrderData orderData)
{
DateTime arriveTime = DateTime.ParseExact(orderData.ArriveTime.ToString(), "dd-MM-yyyy hh:mm:ss:tt", CultureInfo.InvariantCulture);
DateTime orderDate = DateTime.ParseExact(orderData.OrderDate.ToString(), "dd-MM-yyyy hh:mm:ss:tt", CultureInfo.InvariantCulture);
if (orderData.ArriveTime != null && Convert.ToDateTime(arriveTime.Subtract(orderDate)) >= orderData.OrderDate.AddMinutes(10) ||
orderData.ArriveTime != null && Convert.ToDateTime(arriveTime.Subtract(orderDate)) <= orderData.OrderDate.AddHours(2))
{
return true;
}
else
{
return false;
}
}
【问题讨论】:
-
日期没有格式,它们是二进制值。代码通过尝试将日期 ti 字符串转换回日期来导致错误。只需使用
orderData.ArriveTime - orderData.OrderDate即可获得时间跨度的差异 -
但是我得到“运算符
-
是的,因为其余的代码也是错误的。两天之间的差异是持续时间,例如 1 小时或 1 分钟,而不是日期
-
C# 中的小时数怎么说?只有 1、2 和 3?
标签: c# datetime subtraction timespan formatexception