Подтвердить что ты не робот

Использование DateTime в цикле For, добавочная дата Не работает

У меня есть этот цикл, его цель - пропустить диапазон дат и выполнить некоторую логику для автоматизации добавления записей в базу данных. Проблема в том, что добавочная часть date.AddDays(1.0) не работает и всегда является одним и тем же результатом, вызывая бесконечный цикл. Любое понимание?

for (DateTime date = DateTime.Now; futureDate.CompareTo(date) > 0; date.AddDays(1.0))
{
    // logic here
}
4b9b3361

Ответ 1

DateTime.AddDays возвращает новый экземпляр без изменения date. На данный момент вы выбрасываете этот новый экземпляр. Вместо этого вам нужно сделать:

for (DateTime date = DateTime.Now; futureDate.CompareTo(date) > 0; date = date.AddDays(1.0))
{
    // logic here
}

Кроме того, я не уверен, почему вы вызываете CompareTo, когда можете использовать оператор <. Я не могу сказать, корректно ли CompareTo(date) > 0, не задумываясь об этом на мгновение, тогда как намерение оператора < очевидно:

for (DateTime date = DateTime.Now; date < futureDate; date = date.AddDays(1.0))
{
    // logic here
}

Ответ 2

DateTime неизменен. Изменить на: date = date.AddDays(1.0)