我有一个程序可以检查作业对象的日期和分钟部分。如果这些匹配则会触发特定的工作。
If jb.ScheduledStartTime.Value.ToString("MM/dd/yyyy mm") =
Now().ToString("MM/dd/yyyy mm") Then
'Do some work here.
End If
问题: 如果我在白天以不同的时间间隔安排不同的工作,那么他们就可以正常工作。我的意思是它们被触发,在上面的代码中,它们在与当前格式匹配时进入循环。
但是,当日期在12:00更改时,它不起作用。即使我已将预定开始时间设置为在早上9:00触发,但它恰好在上午12:00进入循环,这使我的逻辑无效,让我感到困惑。
为什么会这样?我的日期和分钟检查逻辑是否不正确?有没有更好的方法呢?
我没有检查确切的秒数,我只检查分钟部分。
答案 0 :(得分:2)
您是否在检查当天的变化等?你的schedulestarttime在被触发后是否正确更改。
BTW不要将时间作为字符串进行比较。这很痛苦,你会受伤。然后使用TimeSpan
可以了解事情的持续时间。
If datetime.now > jb.ScheduledStartTime then
'Do Some work.
end if
如果您需要较小的支票
dim myDateCheck as Datetime = datetime.now
myDateCheck = myDateCheck.AddSeconds(-myDateCheck.Second)
if myDateCheck > jb.ScheduledStartTime then
'Do Some work
end if
答案 1 :(得分:1)
同时检查日期时间的小时部分(HH),您的格式应为“MM / dd / yyyy HH:mm”
试试这个
If jb.ScheduledStartTime.Value.ToString("MM/dd/yyyy HH:mm") =
Now().ToString("MM/dd/yyyy HH:mm") Then
'Do some work here.
End If