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

不幸的是,我的double大於OleAut Date的允許範圍。那我該怎麼辦?傳遞大於限定數量的日期時間double

+5

如果您的號碼超出範圍,則它不是有效的輸入,應該忽略 – 2012-01-11 00:53:17

回答

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

編輯

我認錯 - 日期時間結構無法支持OLE日期值過去2,958,466.0(12/31/9999)。除非H. G. Wells是您的用戶,否則這不是有效的輸入。

1

根據online help for ToAuthDate,最大的OLE日期與DateTime.MaxValue(即年終9999)相同。

你是否真的需要在10000年及以後的日期工作?

相關問題