2012-08-15 6 views
0

DateTime 값으로 시작일과 종료일을 입력해야하는 GetOrders 클래스가 있습니다. 내가 날짜를 공급할 때 그럼에도 불구하고, 나는이 오류 메시지가 무엇입니까 것은 : Sorry, the end date was missing, invalid, or before the start date. <EndDate> must be in YYYY-MM-DD or YYYY-MM-DD HH:MI:SS format, and after the start date.문자열로 변환하지 않고 형식 DateTime

이 내 코드입니다 :

:

ff.GetOrders(DateTime.UtcNow, DateTime.UtcNow.AddMonths(-1), TradingRoleCodeType.Buyer, OrderStatusCodeType.Completed);

나는 형식 문자열을 사용하려고, 그것은 하지 작동합니까

 String dt1 = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ"); 
     String dt2 = DateTime.UtcNow.AddMonths(-1).ToString("yyyy-MM-ddTHH:mm:ssZ"); 
+1

기본 'DateTime.Now' 기본값으로 UTC로 변환하지 마십시오 –

+6

종료일을 시작일보다 1 개월 * 일찍 설정하는 것으로 보입니까?! – Jon

답변

1

GetOrders가 startdate, enddate (GetOrders의 함수 프로토 타입을 제공하지 않아서 알 수 없음)이라고 가정하면 잘못된 순서로 표시됩니다. 또는 -1 대신 AddMonths (1)를 사용해야합니다.

가 (. 그렇지 않은 경우, GetOrders에 대한 함수 프로토를 기입하십시오 나는 내 대답을 수정하거나 삭제합니다) 언급 한 바와 같이

1

, 당신의 수학은 ... 오프, 나는 조금 생각됩니다 각각의 계산은 메소드 호출을 결합보다는 분리하여 일반적인 관행으로

DateTime dtStart = DateTime.utcNow  ; 
DateTime dtEnd = dtStart.AddMonths(1) ; 

ff.GetOrders(dtStart , 
       dtEnd , 
       TradingRoleCodeType.Buyer , 
       OrderStatuscodeType.Completed 
      ) ; 

같은

ff.GetOrders(DateTime.UtcNow    , 
       DateTime.UtcNow.AddMonths(-1) , 
       TradingRoleCodeType.Buyer  , 
       OrderStatusCodeType.Completed 
      ) ; 

시도 뭔가, 코드를 이해하기 쉽게 쉽게 수정하고 디버그하기 쉽습니다.