2012-12-04 55 views
0

如果有下面的代碼創建HTML:在特定時間

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點,等等。

我該怎麼做?請幫忙。

我的解決方案:

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 

回答

1

當我明白你的問題,你基本上是在尋找一種方式在給定時間執行一個程序?如果是這樣,請參閱cronWindows scheduler,具體取決於您正在運行的操作系統。


更新:所以基本上你只需要比較當前的時間,並檢查它是否是在下午5點之前。那麼你應該有一個函數,可以從當天下午5點到明天下午5點返回數據。

你可能想看看this VB tutorial for DateTime。基本上你需要比較當前時間和由當前日期在下午5點組成的日期時間。


更新:只是擴展你的條件,以檢查今天不是星期六或星期天。這裏有一段我​​剛剛提到的代碼片段。我對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 
+0

基本上我不執行程序。 Iam打電話給一個鏈接。如果我點擊鏈接,將打開顯示預訂的html側。所以我想檢查我的代碼中的時間。如果星期一下午5點,則顯示星期二至下午5點的預訂。等 – Paks

+0

謝謝,你發佈的鏈接幫了我很多。但我只有一個小問題。在If子句中DateTime.Now Paks

+0

是的,如果我嘗試這個,返回的日期有點奇怪 – Paks