从IF语句中排除两个时间间隔

本文关键字:两个 时间 语句 IF 排除 | 更新日期: 2023-09-27 18:18:58

我试图在24小时内从我的IF声明中排除两个空白。

我有4个不同的小时:

  1. dstart = 06:00:00
  2. dend = 19:00:00
  3. start = 02:00:00
  4. end = 03:00:00

now,这是当前时间。

我想写一段代码,只有当它不属于这个类别时才执行。

IF NOW不在
19:00:00 AND 02:00:00 AND
03:00:00 AND 06:00:00

这是我的。

if ((now > dend && now < start) || (now > end && now < dstart))
   {
      //skip
   }
else
   {
      //Do something
   } 

如果now在以下任何一个小时:

now = new TimeSpan(04,01,00);  // works
now = new TimeSpan(05,01,00);  // works

IF语句成功。

但是,如果时间在这两个小时之间

now = new TimeSpan(19,01,00);  
now = new TimeSpan(20,01,00);
now = new TimeSpan(21,01,00);
now = new TimeSpan(22,01,00);
now = new TimeSpan(23,01,00);
now = new TimeSpan(24,01,00);
now = new TimeSpan(01,01,00);

失败,转到ELSE语句。这是不应该的。我做错了什么?

从IF语句中排除两个时间间隔

对于失败的例子,Now是> end,但不是if (now >= dend || now <= start || (now >= end && now < dstart)) { //skip } else { //Do something }