我的C#程序中有这个:
if (DateTime.Now >= myDateTime1 && DateTime.Now <= myDateTime2)
{
return true;
}
else
{
return false;
}
这些是值:
DateTime.Now = 20/06/11 10:55:43
myDateTime1 = 20/06/11 11:29:09
myDateTime2 = 21/06/11 11:31:07
但为什么这句话会让我回False
?
编辑:我只需要比较日期,而不是时间。
对于您给定的日期,DateTime.Now
在myDateTime1
之前,因此DateTime.Now >= myDateTime1
的求值结果为false
,这意味着整个if语句的求值结果是false
,因此它正在运行else
代码,该代码返回false
。
仅供参考,如果您在if语句上设置了断点(按F9),当程序停止时,您可以将鼠标悬停在二进制运算符(如<=
、&&
和>=
)上,以显示它们的求值结果。
编辑:如果您只想比较日期,则使用if (DateTime.Today >= myDateTime1.Date && DateTime.Today <= myDateTime2.Date)
因为DateTime.Now
小于myDateTime1
。第一个条件为false,下一个条件将不会运行。如果还有任何疑问,如果我错了,你可以问我或纠正我。
从外观上看,DateTime.Now不在myDateTime1和myDateTime2之间,这正是if语句所需要的,因此它返回false。
因为
(20/06/11 10:55:43) >= (20/06/11 11:29:09)
为false:)