如何将excel序列日期转换为.净日期时间?

例如,39938是2009年5月5日.

推荐答案

其中39938是自1900年1月1日以来的天数?

In that case, use the framework library function 100 .
此函数encapsulates包含所有细节,并进行边界判断.

鉴于其历史价值,以下是一种可能的实现:

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

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

[Update]:

好的:现在问题解决了.有关详细信息,请参阅 comments .

.net相关问答推荐

是否必须使用 Visual Studio 预览才能使用 MAUI?

无法实例化类的代理:System.Net.HttpWebRequest.找不到无参数构造函数

如何为多种文件类型设置 FileSystemWatcher 过滤器?

判断内部异常的最佳方法?

为什么 Any() 不适用于 c# null 对象

是否可以像 WebView 一样在 Windows 窗体中嵌入 Gecko 或 Webkit?

具有透明背景且包含不透明控件的 WPF 窗口

BackgroundWorker 中未处理的异常

为什么 ?: 会导致转换错误,而 if-else 不会?

覆盖方法上的 C# 可选参数

变量MyException已声明但从未使用

如何使用 Android 使用 WCF 服务

如何在我的 C# 程序的面板中运行另一个应用程序?

如何确定字符串是 C# 中的有效 IPv4 还是 IPv6 地址?

如何在安装后立即启动 .NET Windows 服务?

嵌套的 Try/Catch 块是个坏主意吗?

判断对象列表是否包含具有特定值的属性

如何在 nuspec 中指定特定的依赖版本?

在 C# 中转义无效的 XML 字符

为 webClient.DownloadFile() 设置超时