Выполните итерации за каждый День между StartDate и EndDate [дубликат]

Этот вопрос уже имеет ответ здесь:

У меня есть a DateTime StartDate и EndDate.

Как может я, независимо от времен, выполнять итерации через каждый День между теми двумя?

Пример: StartDate является 20.07.2010 17:10:32, и EndDate является 29.07.2010 1:59:12.

Я хочу смочь выполнить итерации через 7/20, 7/21, 7/22.. 7/29.

47
задан Ondrej Janacek 20 February 2014 в 14:32
поделиться

3 ответа

for(DateTime date = StartDate; date.Date <= EndDate.Date; date = date.AddDays(1))
{
    ...
}

.Дата означает, что у вас есть последний день, как в примере.

125
ответ дан 26 November 2019 в 19:16
поделиться

Вы должны быть осторожны с датой окончания. Например, в

Пример: StartDate - 20.07.2010 17:10:32 PM, EndDate - 29.07.2010 1:59:12 AM.
Я хочу иметь возможность перебирать 7/20, 21.07, 22.07 .. 29.07.

date никогда не будет включать 29 июля. Когда вы добавляете 1 день к 28 июля 17:10 - он становится 29 июля 17:10, что больше, чем 29 июля 2 часа ночи.

Если это не то, что вы хотите, я бы сказал, что вы делаете

for (DateTime date = start.Date; date <= end.Date; date += TimeSpan.FromDays(1))
{
     Console.WriteLine(date.ToString());
}

или что-то в этом роде.

3
ответ дан 26 November 2019 в 19:16
поделиться
DateTime date = DateTime.Now;
DateTime endDate = date.AddDays(10);

while (date < endDate)
{
  Console.WriteLine(date);
  date = date.AddDays(1);
}
0
ответ дан 26 November 2019 в 19:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: