我正试图查看当前时间是否在2次之间,但我遇到了这个问题:
这是我的代码:
If DATE.NOW < CDate(#6:30:00 AM#) And DATE.NOW >= CDate(#10:30:00 PM#) Then
SHIFT = "NIGHT"
End If
如果我的时间是晚上11点15分,我希望在上述范围之间,但事实并非如此。
除了得到这个的公式之外,我想知道当你比较am和pm时,vb.net中的时间是如何工作的。
答案 0 :(得分:0)
您必须将条件更改为OrElse
,因为内部日期只是常规数字(在这种情况下,日期表示自0001-01-01以来已经过了多少微秒)。因此,Date.Now
不能 小于6:30 AM 大于或等于10 :晚上30点。
您还必须向双方添加.TimeOfDay
,因为这样做只会比较当天的 时间 ,而忽略了日期。 #6:30:00 AM#
将评估为0001-01-01 6:30:00 AM
,该值始终小于Date.Now
(2017-09-25 xx:xx:xx
)。
这应该有效:
If Date.Now.TimeOfDay < #6:30:00 AM#.TimeOfDay OrElse Date.Now.TimeOfDay >= #10:30:00 PM#.TimeOfDay Then
检查时间是否小于上午6:30, 或 大于或等于晚上10:30。