vb.net 中有关自动计划的日期时间问题

本文关键字:计划 日期 时间 问题 net vb | 更新日期: 2023-09-27 18:35:13

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

   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 AM 触发,它也恰好在上午 12:00 进入循环,这使我的逻辑无效,让我感到困惑。

为什么会这样? 我的日期和时间检查逻辑在这里不正确吗? 有没有更好的方法?

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

vb.net 中有关自动计划的日期时间问题

您是否正在检查当天的变化等?触发后,您的计划开始时间是否正确更改。

顺便说一句,不要将时间与字符串进行比较。这很痛苦,你会受伤。使用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 

还要检查日期的小时部分(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