C# 将日期转换为 double

标签 c# vba datetime type-conversion

我用 VBA 编写了一个函数,它根据文件的属性创建代码。 我需要开发人员在 C# 中做同样的事情。

开发人员表示不可能在 C# 中执行相同的操作。

因此,在 VBA 中,我的部分过程是将日期转换为 double 型。 VBA 执行此操作的方式基本上是计算给定日期与 1900 年 1 月 1 日之间的天数。因此,2014 年 3 月 19 日将是 double 值 41,717。

如何用 C#(不是我熟悉的语言)编写一个函数来将日期数据类型转换为自 1900 年 1 月 1 日以来经过的天数?

如有任何帮助,我们将不胜感激。

最佳答案

减去两个 DateTime 得到一个 TimeSpan。您只需使用 TimeSpan.TotalDays 即可获取两个日期之间的天数:

double days = (DateTime.Today - new DateTime(1900,1,1)).TotalDays;

如果 DateTime 有时间部分,它将表示为一天的分数,例如:

 // current date and time (16:24:15)
 (new DateTime(2014, 3, 18, 16, 24, 15) - new DateTime(1900,1,1)).TotalDays

会给你41714.6835069444

请注意,结果与在 VBA 中使用 CDbl() 的结果有 2 天的差异,因为 VBA 中的日期是用自 1899 年 12 月 30 日以来的天数表示的,而不是 1900 年 1 月 1 日以来的天数.

关于C# 将日期转换为 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22490169/

相关文章:

python - 将人类可读的时间差(不是时间戳)转换为可用于排序的时间差

sql - 如何按日期时间进行数据透视表或交叉表?

objective-c - 获取特定时区中两个 NSDate 日期之间的天数

c# - 如何保存 MethodInfo 指针并稍后调用该函数?

vba - 在单元格 VBA 中创建指向工作表的超链接

c# - 如何从 xelement 中提取 cdata 的值?

vba - 集合中的变量引用

vba - 使用 FileDialog 选择文件名

c# - 水平滚动条在 winforms 用户控件中不起作用

c# - 将一些 C++ 数组代码转换为 C#