Я пытаюсь вычесть дни из даты и времени в C#, но я получаю ошибку, которую не понимаю



У меня есть следующий код в моей программе на C#.



DateTime dateForButton =  DateTime.Now;  
dateForButton = dateForButton.AddDays(-1); // ERROR: un-representable DateTime


всякий раз, когда я запускаю его, я получаю следующую ошибку:




добавлена или вычитается значение, не-представимое значение типа datetime.
имя параметра: value




Iv'e никогда не видел это сообщение об ошибке раньше, и не понимаю, почему я его вижу. Из ответов Iv'e, прочитанных до сих пор, я прихожу к выводу, что я могу использовать -1 в операции добавления к вычтите дни, но, как показывает мой вопрос, это не так для того, что я пытаюсь сделать.

813   8  

8 ответов:

эта ошибка обычно возникает при попытке вычесть интервал из DateTime.MinValue или вы хотите добавить что-то DateTime.MaxValue (или вы пытаетесь создать экземпляр даты за пределами этого интервала min-max). Вы уверены, что не назначаете MinValue куда-то?

DateTime dateForButton = DateTime.Now.AddDays(-1);

вы можете сделать:

DateTime.Today.AddDays(-1)

вы можете использовать следующий код:

dateForButton = dateForButton.Subtract(TimeSpan.FromDays(1));

объект (т. е. переменная назначения) для метода 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

    Ничего не найдено.