VB.NET中的时间比较

时间:2017-09-25 16:48:48

标签: vb.net

我正试图查看当前时间是否在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中的时间是如何工作的。

1 个答案:

答案 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.Now2017-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。