Dav*_*rab 70 .net excel datetime
如何从excel序列日期转换为.NET日期时间?
例如39938是05/05/2009.
Nar*_*vet 160
我发现使用FromOADate方法更简单,例如:
DateTime dt = DateTime.FromOADate(39938);
Run Code Online (Sandbox Code Playgroud)
使用此代码dt是"05/05/2009".
Joe*_*orn 78
39938是自19/1年1月1日以来的天数?
在这种情况下,请使用框架库函数DateTime.FromOADate()
.
此函数封装了所有细节,并进行边界检查.
对于它的历史价值,这是一个可能的实现:
(C#)
public static DateTime FromExcelSerialDate(int SerialDate)
{
if (SerialDate > 59) SerialDate -= 1; //Excel/Lotus 2/29/1900 bug
return new DateTime(1899, 12, 31).AddDays(SerialDate);
}
Run Code Online (Sandbox Code Playgroud)
VB
Public Shared Function FromExcelSerialDate(ByVal SerialDate As Integer) As DateTime
If SerialDate > 59 Then SerialDate -= 1 ''// Excel/Lotus 2/29/1900 bug
Return New DateTime(1899, 12, 31).AddDays(SerialDate)
End Function
Run Code Online (Sandbox Code Playgroud)
[更新]:
嗯......快速测试表明它实际上是休息两天.不确定区别在哪里.
好的:问题现在解决了.有关详细信息,请参阅注释
归档时间: |
|
查看次数: |
66643 次 |
最近记录: |