繁体   English   中英

如何处理日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM