2012-01-11 3 views
-2
DateTime dt=DateTime.FromOADate(duble); //e.g 3364072679.0 

내 Double은 OleAut Date의 허용 범위보다 크다. 그러면 어떻게해야합니까?제한된 시간보다 두 배 큰 datetime 전달

+5

숫자가 범위를 벗어난 경우 올바른 입력이 아니므로 무시해야합니다. –

답변

2

분수 (시간) 부분이 중요하지 않은 경우에는 최대 OLE 날짜에 나머지를 추가 할 수 있습니다

double maxOLEDate = 2958466.0 
int days = duble - maxOLEDate; 
DateTime dt=DateTime.FromOADate(maxOLEDate).AddDays(days); 

을 또는 다만 "최소"OLE 날짜에 값을 추가

DateTime dt = DateTime.FromOADate(0).AddDays((int)duble); 

편집은

은 내가 그렇군요 - 날짜 시간 구조는 2,958,466.0 (12/31/9999) 과거 OLE 날짜 값을 지원할 수 없습니다. H. G. Wells이 귀하의 사용자가 아닌 한, 이것은 유효한 입력이 아닙니다.

1

online help for ToAuthDate에 따르면 최대 OLE 날짜는 DateTime.MaxValue (즉, 9999 년 말)과 동일합니다.

10,000 이상의 날짜를 실제로 사용해야합니까?

관련 문제