vb.net中有关自动调度的DateTime问题

时间:2012-05-23 04:48:43

标签: c# .net vb.net datetime

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

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

为什么会这样?我的日期和分钟检查逻辑是否不正确?有没有更好的方法呢?

我没有检查确切的秒数,我只检查分钟部分。

2 个答案:

答案 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