0

我有一个程序可以检查我的工作对象的日期和分钟部分。如果这些匹配,那么它会触发一个特定的工作。

   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 AM 进入循环,这使我的逻辑无效,让我感到困惑。

为什么会这样?我的日期和分钟检查逻辑在这里不正确吗?有没有更好的方法来做到这一点?

我在这里不检查确切的秒数,我只检查分钟部分。

4

2 回答 2

2

您是否正在检查当天的变化等?您的 schedulestarttime 是否在触发后正确更改。

顺便说一句,不要将时间作为字符串进行比较。这很痛苦,你会受伤。使用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 
于 2012-05-23T04:59:28.290 回答
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
于 2012-05-23T05:07:18.980 回答