Ответ 1
new DateTime()
01/01/0001 00:00:00
, который также является DateTime.MinValue
.
Вы вычитаете один час из этого.
Угадав, что вы пытаетесь вычесть час из значения TimeTo
:
var TimeFrom = TimeTo.AddHours(-1);
У меня есть метод, который ожидает два параметра datetime
public void SomeReport(DateTime TimeFrom, DateTime TimeTo)
{
// ommited
TimeFrom.ToString("ddMMyy"), TimeTo.ToString("ddMMyy")));
// ommited
}
Когда я отправляю этот параметр
DateTime TimeTo = DateTime.Now;
DateTime TimeFrom = new DateTime().AddHours(-1);
Эта ошибка произошла:
System.ArgumentOutOfRangeException: добавленное или вычитаемое значение приводит к не представимому DateTime.
В чем может быть проблема?
new DateTime()
01/01/0001 00:00:00
, который также является DateTime.MinValue
.
Вы вычитаете один час из этого.
Угадав, что вы пытаетесь вычесть час из значения TimeTo
:
var TimeFrom = TimeTo.AddHours(-1);
new DateTime()
возвращает минимальное представимое DateTime
; добавление -1
часов к этому приводит к DateTime
, который не может быть представлен.
Вероятно, вы хотите DateTime TimeFrom = TimeTo.AddHours(-1);
попробовать:
DateTime TimeTo = DateTime.Now;
DateTime TimeFrom = TimeTo.AddHours(-1);
создание DateTime
с new DateTime()
дает вам DateTime
с DateTime.MinValue
... из этого вы фактически не можете вычесть что-либо... иначе вы получите исключение, которое вы получили... см. MSDN
Посмотрите данные даты или времени. Недостаточно цифр для даты или времени. Пример даты должен быть 8 цифр 20140604 и время 6 цифр, как этот 180203. По этой причине вы получаете ошибку. Я тоже получаю эту ошибку и нахожу время 18000 и меняю это на проблему с 180000.
В вашем случае TimeFrom
содержит дату и время, из которых -1 нельзя добавить. Вы можете либо вызвать
DateTime TimeFrom = TimeTo .AddHours(-1);
или
DateTime TimeFrom = new DateTime().now.AddHours(-1);
Оба они дают тот же результат.