Have fun with sci.dog

MATLAB与C#的日期转换对比

此问题的背景是笔者要将一段MATLAB代码翻译成C#代码,matlab代码中使用日期运算,用到了datenum函数,计算了不同日期之间的时差等。C#中的日期类是DataTime,因此笔者尝试了一下。

matlab中的datenum函数可以把字符串或者字符数组表示的日期转换为数字,matlab默认将第0年的1月1日记录第0天,C#则不同,C#中,将1899年12月31日设为了第0天。

图1:MATLAB的datenum函数

图2:C#的ToOADate函数

2021年9月14日翻阅matlab帮助文件时,发现,matlab专门有个函数,可以将matlab日期转换为EXCEL日期,当然EXCEL的日期格式和C#是一致的。

matlab中日期转换为EXCEL日期的函数为exceltime

t1 = datetime(2021,9,14)
t2 = datetime(2020,9,14)
dt = exceltime(t1)-exceltime(t2)

此外,附上MATLAB和C#关于这两个日期转换数字的函数的说明。

  • C#

DateTime.ToOADate 方法 (System) | Microsoft Docs

  • MATLAB

将日期和时间转换为日期序列值 – MATLAB datenum – MathWorks 中国

赞(1)
未经允许不得转载:SciDog » MATLAB与C#的日期转换对比

评论 抢沙发