不知道如何在特定时间 运行 一个函数

Don't know how to run a Function at a specific time

我试图了解更多,但遗憾的是我无法理解它如何与 Windows 任务计划程序一起工作,所以我尝试了一些简单的方法,但它仍然不起作用。

我希望此功能每天 运行 除了周末。

这是我的代码:

Sub automaticworkdayinsert()

    If Timer4.Interval = 7200000 Then
        Dim time As Date = Date.Now
        Dim currhour As Integer
        Dim currminute As Integer
        Dim ReportHour As Integer
        Dim ReportMinute As Integer
        currhour = time.Hour
        currminute = time.Minute
        ReportHour = 15
        ReportMinute = 10
        If currhour = ReportHour AndAlso currminute = ReportMinute Then
            insertAndcheckWorkday(False)
        End If
    End If
End Sub

很难通过代码中包含的内容来判断(您可能还应该将代码包含在 insertAndcheckWorkday 函数中),但就以下而言:

And i am not sure why but i want the hour to be 03 but vs turn it automatically at 3.

看看:

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

在您的情况下,您可能想要使用 hh(12 小时格式)或 HH(24 小时格式)。

此外,为了比较 dates/times,框架中已经内置了一个方便的函数:

https://docs.microsoft.com/en-us/dotnet/api/system.datetime.compare?view=netcore-3.1

最后,这并没有回答你的问题,但我的强迫症 :p 只是想帮助你一点:

Sub automaticworkdayinsert()

    If Timer4.Interval = 7200000 Then

        Dim time As Date = Date.Now

        Dim currhour As Integer = time.Hour
        Dim currminute As Integer = time.Minute
        Dim ReportHour As Integer = 15
        Dim ReportMinute As Integer = 10

        If currhour = ReportHour AndAlso currminute = ReportMinute Then insertAndcheckWorkday(False)

    End If

End Sub

以上更改将使代码在长 运行 中更易于阅读,并立即使用特定值初始化变量(可以说,因为整数已经初始化为 0,所以可能有点像没有实际意义,但通常被认为是良好的编码实践)。此外,如果您在 if 之后只发生了 1 件事,您也可以将其放在一行中。同样,以后阅读起来更容易。