Я пытаюсь вычесть дни из даты и времени в C#, но я получаю ошибку, которую не понимаю
У меня есть следующий код в моей программе на C#.
DateTime dateForButton = DateTime.Now;
dateForButton = dateForButton.AddDays(-1); // ERROR: un-representable DateTime
всякий раз, когда я запускаю его, я получаю следующую ошибку:
добавлена или вычитается значение, не-представимое значение типа datetime.
имя параметра: value
Iv'e никогда не видел это сообщение об ошибке раньше, и не понимаю, почему я его вижу. Из ответов Iv'e, прочитанных до сих пор, я прихожу к выводу, что я могу использовать -1 в операции добавления к вычтите дни, но, как показывает мой вопрос, это не так для того, что я пытаюсь сделать.
8 ответов:
эта ошибка обычно возникает при попытке вычесть интервал из
DateTime.MinValueили вы хотите добавить что-тоDateTime.MaxValue(или вы пытаетесь создать экземпляр даты за пределами этого интервала min-max). Вы уверены, что не назначаетеMinValueкуда-то?
объект (т. е. переменная назначения) для метода AddDays не может совпадать с источником.
вместо:
DateTime today = DateTime.Today; today.AddDays(-7);попробуйте это вместо этого:
DateTime today = DateTime.Today; DateTime sevenDaysEarlier = today.AddDays(-7);
DateTime dt = DateTime.Now; dt.AddDays(-1); //wont work //should set return value as belowe dt = dt.AddDays();
используя
AddDays(-1)работал на меня, пока я не попытался пересечь месяцы. Когда я попытался вычесть 2 дня из 2017-01-01 результат был 2016-00-30. Он не мог правильно обрабатывать изменение месяца (хотя год, казалось, был прекрасным).Я
date = Convert.ToDateTime(date).Subtract(TimeSpan.FromDays(2)).ToString("yyyy-mm-dd");и не имеют никаких проблем.
У меня были проблемы с использованием AddDays(-1).
мое решение-это TimeSpan.
DateTime.Now - TimeSpan.FromDays(1);
Comments