0

我在 VB.NET 2008 中每周使用 datetime 尝试循环。

本守则

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,但不工作。

谢谢你的时间。:)

4

3 回答 3

0

你可以做一个while循环,直到日期时间大于今天?

您想使用 DateTime 而不是 Date,因此您可以与 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 上完成了它,这对我来说很好

于 2013-02-27T16:05:19.070 回答
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"))

希望有帮助。

于 2013-02-27T16:07:43.770 回答
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 条件更改为:
While dtAux <= Date.Today

于 2013-02-27T16:12:52.877 回答