我希望if语句在某个数字值范围内激活,但它不起作用。目前编码:
if (DateTime.Now.Minute == 20 - 39)
lblMA2.BackColor = Color.Blue;
else
lblMA2.BackColor = Color.Gray;
发布时的当前时间在该范围内,我的标签保持灰色。插入精确值时,相同的代码可以正常工作。当分钟击中时它会变成蓝色,然后在它通过时变成灰色。我插入了范围,什么都没有。
任何人都可以帮助我让它工作而无需输入额外的36行代码吗?
谢谢!
答案 0 :(得分:3)
使用if (Enumerable.Range(20, 19).Contains(DateTime.Now.Minute))
目前您正在将DateTime.Now.Minute
与20 - 39
-19
进行比较。
我的解决方案创建一个包含20到39之间值的集合,并检查当前分钟是否在此集合中。
或者您可以检查分钟是否超过20且低于39(这应该是首选,请参阅评论中Konrad的解释)。
答案 1 :(得分:3)
要检查一个数字是否在特定范围内,请在两个条件下使用&&
- 小于和大于,如下所示:
if (DateTime.Now.Minute >= 20 && DateTime.Now.Minute <= 39) {
...
}
&&
表示“AND”。当左侧评估为true
时,复合条件评估为true
,然后右侧评估为true
。仅当左侧为true
时才评估右侧。