[英]How to handle hours in date
我正在尝试通过截止日期的批次数量,以及接近截止日期(截止日期之前2小时)的批次数量。 如果我比截止日期晚一天,可以关注以下内容。 但是如何处理小时?
获取通过截止日期的批次数量,以及接近截止日期的批次数量(截止日期之前2小时)
CustomerID;CustomerName;BatchDeadline
1;AAA;1
2;BBB;2
3;CCC;2
4;DDD;3
* BatchDeadline:BatchDate之后的天数,如果2表示Batchs表中BatchDate的第二天。
BatchID;CustomerID;BatchDate
1;1;2014-12-10 8:00
2;2;2014-12-10 8:10
3;2;2014-12-11 10:20
4;1;2014-12-12 11:10
5;3;2014-12-12 11:12
6;3;2014-12-12 11:22
7;3;2014-12-12 11:23
int passedDeadline = 0;
int nearDeadline = 0;
foreach(customer c in customers)
{
foreach(Batch b in batches)
{
if (b.BatchDate < b.BatchDate(c.BatchDeadline * -1)
passedDeadline++;
}
}
获取当前时间(不要在循环中获取它,因为当前时间一直在变化):
DateTime now = DateTime.Now;
计算要与之比较的时间点:
DateTime deadline = b.BatchDate.AddDays(c.BatchDate);
DateTime nearDeadline = deadline.AddHours(-2);
现在,只需将表格中的时间与时间点进行比较:
if (now > deadline) {
// passed the deadline
} else if (now >= nearDeadline) {
// near the deadline
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.