我试图在24小时内从我的IF
声明中排除两个空白。
我有4个不同的时间:
dstart = 06:00:00
dend = 19:00:00
start = 02:00:00
end = 03:00:00
now
这是当前时间。
我想编写代码,只有在不属于此类别的情况下才能执行。
如果现在不在之间 19:00:00和02:00:00和
03:00:00和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
声明。它不应该。我做错了什么?
答案 0 :(得分:1)
对于失败的例子,现在是&gt; dend,但不是&lt;开始,现在是&gt;结束,但不是&lt; DSTART。这两种情况都没有通过,所以它会转移到其他地方。
-
if (now >= dend || now <= start || (now >= end && now < dstart))
{
//skip
}
else
{
//Do something
}