Проблемы с циклом и DateTime Я пытаюсь использовать for для DateTime следующим образом: for (DateTime d = _BookedCheckIn; d <= _BookedCheckOut; d.AddDays(1)) { // ... } Но проблема в том, что d не увеличивается. Кто-нибудь имеет представление о том, что проблема? Ответ 1 Вам нужно использовать: for (DateTime d = _BookedCheckIn; d <= _BookedCheckOut; d = d.AddDays(1)) { Когда вы вызываете d.AddDays, он возвращает новое значение DateTime, не изменяя тот, который вы уже создали. Ответ 2 d.AddDays(1) фактически не добавляет день к d. Он возвращает новый объект datetime на 1 день больше, чем d. Эта проблема описана здесь: https://stackoverflow.com/questions/380819/common-programming-mistakes-for-net-developers-to-avoid/1213588#1213588 Ответ 3 Возвращает новое значение DateTime, которое добавляет указанное количество дней к значение этого экземпляра. Этот метод не изменяет значение этого DateTime. Вместо этого возвращает новый DateTime, значение которого является результатом этой операции. MSDN Итак... Это должно быть как ниже for (DateTime d = _BookedCheckIn; d <= _BookedCheckOut; d = d.AddDays(1)) Ответ 4 Или, альтернативно, d += TimeSpan.FromDays(1);
Ответ 1 Вам нужно использовать: for (DateTime d = _BookedCheckIn; d <= _BookedCheckOut; d = d.AddDays(1)) { Когда вы вызываете d.AddDays, он возвращает новое значение DateTime, не изменяя тот, который вы уже создали.
Ответ 2 d.AddDays(1) фактически не добавляет день к d. Он возвращает новый объект datetime на 1 день больше, чем d. Эта проблема описана здесь: https://stackoverflow.com/questions/380819/common-programming-mistakes-for-net-developers-to-avoid/1213588#1213588
Ответ 3 Возвращает новое значение DateTime, которое добавляет указанное количество дней к значение этого экземпляра. Этот метод не изменяет значение этого DateTime. Вместо этого возвращает новый DateTime, значение которого является результатом этой операции. MSDN Итак... Это должно быть как ниже for (DateTime d = _BookedCheckIn; d <= _BookedCheckOut; d = d.AddDays(1))