【问题标题】:Create HTML on Specific Time在特定时间创建 HTML
【发布时间】:2012-12-05 05:51:34
【问题描述】:

如果有以下代码:

Public Shared Function GetNextWeekDay() As Date
    Dim value As Date = Date.Now
    Do
        value = value.AddDays(1)
    Loop While (value.DayOfWeek = DayOfWeek.Saturday) Or (value.DayOfWeek = DayOfWeek.Sunday)
    Return value
End Function


Public Shared Function DPLoadData() As String
    Dim s As StringBuilder = New StringBuilder("<head><meta http-equiv=""content-type"" content=""text/html;charset=utf-8"" /><META HTTP-EQUIV=""REFRESH"" CONTENT=""900"">")
    s.Append("<style type=""text/css"" media=""all""> body{font-family: Arial;}h4{font-size: 10pt;font-weight: bold;white-space: nowrap;margin-top: 0; margin-bottom: 10px;}")
    s.Append("th{font-size: 9pt;font-weight: normal;text-align: center;white-space: nowrap;}td{font-size: 9pt;}.content td{border: solid 1px #dadada;}")
    s.Append(".content th {border: solid 1px #dadada;background-image: url(""tbl_header_row_bg.gif""); background-repeat: repeat-x; white-space: nowrap;}</style></head>")


  s.Append("<h3>" & "Daily Plan" & "</h3>")
        Dim strCurrDay As String = ""
        s.Append("<h5>" & strCurrDay & "</h5>")



    Dim CurrDateFirstDay As Date = GetNextWeekDay()
    strCurrDay = FormatDateTime(CurrDateFirstDay, DateFormat.LongDate)
    s.Append("<h5>" & strCurrDay & "</h5>")
    s.Append(LoadDataGroupByDate(CurrDateFirstDay))

    Return s.ToString()

End Function

函数 DPLoadData 生成一个带有表格的 HTML 文件,并用预订填充它。目前,HTML 文件显示明天的预订(例如,如果今天是星期一,则显示星期二的预订,如果今天是星期五,则显示星期一的预订)。

我需要的是 HMTL 文件在下午 5 点生成。例如:如果今天是星期一,则 HTML 文件应在星期一下午 5 点生成,并应显示星期二至星期二下午 5 点和星期二下午 5 点的预订。该文件应为星期三生成并应显示星期三至下午 5 点的预订星期三下午 5 点,以此类推。

我该怎么做?请帮忙。

我的解决方案:

 Public Shared Function GetNextWeekDay() As Date
    Dim value As Date = Date.Now
    Dim intHour As Integer
    Dim intMinute As Integer
    Dim intSecond As Integer


    intHour = 17
    intMinute = 0
    intSecond = 0

    Dim newdatetime As DateTime = New Date(value.Year, value.Month, value.Day, intHour, intMinute, intSecond)

    If DateTime.Now < newdatetime Then

        If value.DayOfWeek = DayOfWeek.Saturday Then
            value = value.AddDays(2)
            Return value
        End If

        If value.DayOfWeek = DayOfWeek.Sunday Then
            value = value.AddDays(1)
            Return value
        End If

        Return value

    ElseIf DateTime.Now > newdatetime Then
        Do
            value = value.AddDays(1)
        Loop While (value.DayOfWeek = DayOfWeek.Saturday) Or (value.DayOfWeek = DayOfWeek.Sunday)
        Return value
    End If
End Function

【问题讨论】:

    标签: vb.net datetime time


    【解决方案1】:

    据我了解您的问题,您基本上是在寻找一种在给定时间执行程序的方法?如果是这样,请查看cronWindows scheduler,具体取决于您运行它的操作系统。


    更新:所以基本上你只需要比较当前时间并检查是否在下午 5 点之前。然后你应该有一个函数返回从当天下午 5 点到明天下午 5 点的数据。

    您可能想看看this VB tutorial for DateTime。基本上,您需要将当前时间与包含当前日期下午 5 点的日期时间进行比较。


    更新:只需扩展您的 if 条件以检查今天不是星期六或星期日。这是我刚刚编写的一个小代码 sn-p。我对 VB 不是很熟悉,所以这可能不是 100% 正确,但我想你明白了。

    Public Function GetNextWeekDay() As Date
        Dim value As Date = Date.Now
        Dim intHour As Integer
        Dim intMinute As Integer
        Dim intSecond As Integer
    
        intHour = 17
        intMinute = 0
        intSecond = 0
    
        Dim newdatetime As DateTime = New Date(value.Year, value.Month, value.Day, intHour, intMinute, intSecond)
    
        If value.DayOfWeek <> DayOfWeek.Saturday And value.DayOfWeek <> DayOfWeek.Sunday And DateTime.Now < newdatetime Then
            Return value.Date
        Else
            Do
                value = value.AddDays(1)
            Loop While (value.DayOfWeek = DayOfWeek.Saturday) Or (value.DayOfWeek = DayOfWeek.Sunday)
            Return value.Date
        End If
    End Function
    

    【讨论】:

    • 基本上我不执行程序。我正在调用链接。如果我单击链接,将打开一个显示预订的 html 端。所以我想检查我的代码中的时间。如果周一下午 5 点,则显示周二至下午 5 点的预订。等等
    • 谢谢,您发布的链接对我帮助很大。但我只有一个小问题。在 DateTime.Now
    • 是的,有问题,如果我试试这个,返回的日期有点奇怪
    • 您需要详细说明。 “奇怪”到底是什么意思?
    • 返回的日期如下:Monday, 1. Januar 0001
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 2014-12-22
    相关资源
    最近更新 更多