循环以根据开始日期和结束日期生成日期列表

时间:2019-05-09 09:21:15

标签: vb.net date

如何根据开始日期和结束日期生成日期列表?

i)dt.Rows(k).Item(“ startdate”)=开始日期= 2019-11-13

ii)dt.Rows(k).Item(“ enddate”)=结束日期= 2019-11-27

 For p = dt.Rows(k).Item("startdate") To dt.Rows(k).Item("enddate")

         //display p value

  Next p

1 个答案:

答案 0 :(得分:1)

如果获得这些日期之间的天数,则可以迭代多次+ 1(以包括开始结束日期),并将循环变量添加到开始日期...

Module Module1

    Sub Main()
        Dim startDate = New DateTime(2019, 11, 13)
        Dim endDate = New DateTime(2019, 11, 27)

        Dim daysCount = (endDate - startDate).Days

        For i = 0 To daysCount
            Dim p = startDate.AddDays(i)
            Console.WriteLine(p.ToString("yyyy-MM-dd"))
        Next

        Console.ReadLine()

    End Sub

End Module

输出:

2019-11-13
2019-11-14
2019-11-15
2019-11-16
2019-11-17
2019-11-18
2019-11-19
2019-11-20
2019-11-21
2019-11-22
2019-11-23
2019-11-24
2019-11-25
2019-11-26
2019-11-27

请注意... To daysCount,而不是... To daysCount - 1


在此示例中,没有必要使用LINQ进行更巧妙的介绍,但以防万一在其他情况下还是有道理的:

For Each p In Enumerable.Range(0, (endDate - startDate).Days + 1).Select(Function(i) startDate.AddDays(i))
    Console.WriteLine(p.ToString("yyyy-MM-dd"))
Next