Цикл для создания списка дат на основе даты начала и окончания - PullRequest
0 голосов
/ 09 мая 2019

Как я могу сгенерировать список дат на основе даты начала и окончания?

i) dt.Rows (k) .Item ("startdate") = дата начала = 2019-11-13

ii) dt.Rows (k) .Item ("конечная дата") = дата окончания = 2019-11-27

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

         //display p value

  Next p

1 Ответ

1 голос
/ 09 мая 2019

Если вы получите количество дней между этими датами, то вы можете итерировать это много раз + 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...