1

我想要一个 if 语句在一定范围的数值上激活,但它不起作用。目前编码:

if (DateTime.Now.Minute == 20 - 39)
            lblMA2.BackColor = Color.Blue;
        else
            lblMA2.BackColor = Color.Gray;

发布时的当前时间在该范围内,我的标签保持灰色。当我插入一个确切的值时,相同的代码可以工作。一分钟后它会变成蓝色,然后是灰色。我插上范围,什么都没有。

谁能帮我让它工作而无需输入额外的 36 行代码?

谢谢!

4

2 回答 2

3

利用if (Enumerable.Range(20, 19).Contains(DateTime.Now.Minute))

现在您正在DateTime.Now.Minute20 - 39which is进行比较-19

我的解决方案创建了一个包含从 20 到 39 的值的集合,并检查当前分钟是否在此集合中。

或者您可以检查分钟是否超过 20 且低于 39(应该首选,请参阅 Konrad 在评论中的解释)。

于 2013-11-03T20:38:28.280 回答
3

要检查一个数字是否在特定范围内,请&&在两个条件下使用 - 小于和大于,如下所示:

if (DateTime.Now.Minute >= 20 && DateTime.Now.Minute <= 39) {
    ...
}

&&意思是“和”。true当左侧计算为 时,复合条件计算为true,然后右侧也计算为true。仅当左侧为 时才评估右侧true

于 2013-11-03T20:39:02.640 回答