DateTime dt=DateTime.FromOADate(duble); //e.g 3364072679.0
不幸的是,我的双倍大于OleAut Date的允许范围。那我该怎么办?
答案 0 :(得分:2)
如果小数(时间)部分不重要,您可以将余数添加到最大OLE日期:
double maxOLEDate = 2958466.0
int days = duble - maxOLEDate;
DateTime dt=DateTime.FromOADate(maxOLEDate).AddDays(days);
或者只是将值添加到" Min" OLE日期:
DateTime dt = DateTime.FromOADate(0).AddDays((int)duble);
修改强>
我更正了 - DateTime结构不支持过去2,958,466.0(12/31/9999)的OLE日期值。除非H. G. Wells是您的用户,否则这不是有效输入。
答案 1 :(得分:1)
根据online help for ToAuthDate
,最大OLE日期与DateTime.MaxValue
相同(即9999年末)。
您真的需要处理10,000年及以后的日期吗?