DateTime dt=DateTime.FromOADate(duble); //e.g 3364072679.0
不幸的是,我的double大於OleAut Date的允許範圍。那我該怎麼辦?傳遞大於限定數量的日期時間double
DateTime dt=DateTime.FromOADate(duble); //e.g 3364072679.0
不幸的是,我的double大於OleAut Date的允許範圍。那我該怎麼辦?傳遞大於限定數量的日期時間double
如果小數(時間)部分並不重要,你可以在剩下添加到最大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是您的用戶,否則這不是有效的輸入。
根據online help for ToAuthDate
,最大的OLE日期與DateTime.MaxValue
(即年終9999)相同。
你是否真的需要在10000年及以後的日期工作?
如果您的號碼超出範圍,則它不是有效的輸入,應該忽略 – 2012-01-11 00:53:17