2012-12-04 2 views
10

나는이 기대 방법이 날짜 매개 변수않은 표현 가능한 날짜 시간

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); 

PARAMS 보내고있다 :

System.ArgumentOutOfRangeException이를 : 더하거나 뺀 값은 표현할 수없는 DateTime이됩니다.

무엇이 문제 일 수 있나요?

답변

22

new DateTime()하는 것도 DateTime.MinValue입니다 01/01/0001 00:00:00이다.

그 중 한 시간을 뺍니다.

당신이 TimeTo 값에서 시간을 빼기 위해 노력하고 추측 :

var TimeFrom = TimeTo.AddHours(-1); 
+0

예! 나는 또한 그것을 구조체. 그것 datetime의 기본 인스턴스를 입증했다 MinValue datetime! – UJS

12

new DateTime()은 최소 표현 가능 DateTime을 반환합니다. 이 결과에 -1 시간을 더하면 표현할 수없는 DateTime이됩니다.

당신은 아마 원하는 DateTime TimeFrom = TimeTo.AddHours(-1);

5

시도 :

DateTime TimeTo = DateTime.Now; 
DateTime TimeFrom = TimeTo.AddHours(-1); 
1

new DateTime()DateTime 당신에게 DateTime.MinValueDateTime를 제공 만드는 ...이에서 당신이 실제로 무엇을 뺄 수 없습니다 ... 그렇지 않으면 예외가 발생합니다 ... MSDN

0

TimeFrom에는 -1을 더할 수없는 datetime이 있습니다. 당신도

DateTime TimeFrom = TimeTo .AddHours(-1); 

또는

DateTime TimeFrom = new DateTime().now.AddHours(-1); 

이 같은 결과를 얻을 호출 할 수 있습니다.

1

날짜 또는 시간 데이터를 확인하십시오. 날짜 또는 시간에 숫자가 충분하지 않습니다. 예 날짜는 180203과 같이 8 자리 숫자 20140604와 6 자리 숫자 여야합니다.이 이유로 인해 getiing 오류가 발생합니다. 나는이 오류도 받아서 시간 18000을 찾고 이것을 180000 문제로 바꾼다.