2013-02-27 89 views
0

我嘗試循環,同時與每個日期時間每週在VB.NET 2008如何使用循環通過每個日期時間每週在vb.net

本準則

Private Sub Button1_Click().... 
     'Select DateTime 
     Dim strDate As Date = dateTimePicker.Value.ToString("yyyy-MM-dd") 

     'one week (+7) 
     Dim strDateWeek As String = DateAdd("d", +7, dateTimePicker.Value.ToString("yyyy-MM-dd")) 

     'DateCurrent 
     Dim strDateNow As String = DateAdd("d", 0, Now.ToLongDateString()) 

     'While strDate < strDateNow 
      'ListBox1.Items.Add(strDateWeek) 
     'End While 
     ListBox1.Items.Add(strDateWeek) 
End Sub 

I select on datetimepicker at "04/02/2013" 
Output now: 11/02/2013 

But I need Output each on weekly 
11/02/2013 
18/02/2013 
25/02/2013 >>> To Current Week 

我試着循環while,但是不行。

謝謝你的時間。 :)

+1

你應該使用'DateTime's,而不是'String's。然後你會有很好的方法,比如'AddDays()',你可以在循環中調用它。 – SLaks 2013-02-27 16:01:04

回答

0

你可以做一個while循環,直到日期時間大於今天?

您想使用的DateTime,而不是日期,這樣你就可以比作一個DateTime.Now

你想你的實際DatePicker的值設置爲變量,否則它永遠是相同的,你只會得到一個無限循環。

Dim datePickerValue As DateTime = DateTimePicker.Value 
    Dim strDate As Date = DateTimePicker.Value.ToString("yyyy-MM-dd") 
    Dim strDateWeek As String 
    Dim strDateNow As String = DateAdd("d", 0, Now.ToLongDateString()) 

    While datePickerValue < DateTime.Now() 
    strDateWeek = DateAdd("d", +7, datePickerValue.ToString("yyyy-MM-dd")) 
    datePickerValue = DateAdd("d", +7, datePickerValue.ToString("yyyy-MM-dd")) 
    ListBox1.Items.Add(strDateWeek) 
    End While 

剛剛做它用你的命名約定我的VS和這工作得很好,我

+0

非常感謝。它的工作非常好! :d – nettoon493 2013-02-28 01:46:29

0

它已經,因爲我沒有用過VB很長一段時間,但也許我能幫忙嗎? 在你的代碼中,使用while可能是一個錯誤的選擇,也許你可以使用for而不是break。

for I = 1 to 10 
Dim strDateWeek As String = DateAdd("d", +7 * i, dateTimePicker.Value.ToString("yyyy-MM-dd")) 
. 
. 
. 

while(...) 
I += 1 
Dim strDateWeek As String = DateAdd("d", +7 * i, dateTimePicker.Value.ToString("yyyy-MM-dd")) 

希望有所幫助。

0

試試這個:

Dim dtAux As Date = dateTimePicker.Value 
Dim dtEnd As Date = Date.Today.AddDays(7 - dt.DayOfWeek) 

While dtAux <= dtEnd 
    ListBox1.Items.Add(dtAux.ToString("yyyy-MM-dd")) 
    dtAux = dtAux.AddDays(7) 
End While 

日期dtEnd是當前周的最後一天,如果你想在循環停止在當前日期簡單地改變,而條件:
While dtAux <= Date.Today