2013-02-27 83 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