В моей программе на C # есть следующий код.
DateTime dateForButton = DateTime.Now;
dateForButton = dateForButton.AddDays(-1); // ERROR: un-representable DateTime
Всякий раз, когда я запускаю его, я получаю следующую ошибку:
Добавленное или вычтенное значение приводит к непредставимому DateTime.
Имя параметра: значение
Я никогда раньше не видел это сообщение об ошибке и не понимаю, почему я его вижу. Из ответов, которые я прочитал до сих пор, я считаю, что могу использовать -1 в операции добавления для вычитания дней, но, как показывает мой вопрос, это не относится к тому, что я пытаюсь сделать.
DateTime.MinValue
или хотите что-то добавитьDateTime.MaxValue
(или вы пытаетесь создать экземпляр даты за пределами этого минимального-максимального интервала). Вы уверены, что никуда не назначаетеMinValue
?Ответы:
Эта ошибка обычно возникает, когда вы пытаетесь вычесть интервал
DateTime.MinValue
или хотите что-то добавитьDateTime.MaxValue
(или вы пытаетесь создать экземпляр даты за пределами этого минимального-максимального интервала). Вы уверены, что никуда не назначаетеMinValue
?источник
DateTime dateForButton = DateTime.Now.AddDays(-1);
источник
Ты можешь сделать:
DateTime.Today.AddDays(-1)
источник
Вы можете использовать следующий код:
dateForButton = dateForButton.Subtract(TimeSpan.FromDays(1));
источник
Этот день
dateTime.AddDays(-1)
не вычитается изdateTime
справки. Он вернет новый экземпляр, в котором один день будет вычтен из исходной ссылки.DateTime dateTime = DateTime.Now; DateTime otherDateTime = dateTime.AddDays(-1);
источник
У меня были проблемы с использованием AddDays (-1) .
Мое решение - TimeSpan .
DateTime.Now - TimeSpan.FromDays(1);
источник
Объект (т.е. переменная назначения) для метода AddDays не может совпадать с источником.
Вместо того:
DateTime today = DateTime.Today; today.AddDays(-7);
Попробуйте вместо этого:
DateTime today = DateTime.Today; DateTime sevenDaysEarlier = today.AddDays(-7);
источник
Вместо того, чтобы напрямую уменьшать количество дней от объекта даты, сначала получите значение даты, а затем вычтите дни. См. Пример ниже:
DateTime SevenDaysFromEndDate = someDate.Value.AddDays(-1);
Здесь someDate - это переменная типа DateTime.
источник
Использование
AddDays(-1)
сработало для меня, пока я не попытался пересечь несколько месяцев. Когда я попытался вычесть 2 дня из 2017-01-01, результат был 2016-00-30. Он не мог правильно справиться с изменением месяца (хотя год, казалось, был в порядке).Пользуюсь
date = Convert.ToDateTime(date).Subtract(TimeSpan.FromDays(2)).ToString("yyyy-mm-dd");
и проблем нет.источник