首先,请注意,MATLAB和Octave定义是等效的
[MATLAB] N = "number of days since Jan 0, 0000"
⇔ [OCTAVE] "Jan 1, 0000 is day 1"
从第一N = 1
天开始
“零年级”(您已链接到)上的Wikipedia页面提供了以下功能:
[...]公元前1年紧随其后的是公元1。但是,天文年份编号(与朱利安公元前1年重合)和ISO 8601:2004(其中与格里高利历时重合)都为零。公元前1年),以及所有佛教和印度教日历。
如datetime
docs中所述,MATLAB和Octave似乎已遵循ISO标准:
datetime数组代表使用多时ISO日历的时间点
因此,年份零(即datenum
1天的值)与1BC的第一天重合。根据此答案顶部的定义
"day 1"
= 1/Jan/0000
= datenum(1)
= datetime( 1, 'ConvertFrom', 'datenum' )
= datetime( 0, 0, 1 )
我们可以使用datenum
(天数)和datetime
(日期时间类型对象)进行测试
datenum( 0, 0, 1 ) % = 1, as defined by the docs
datetime( 1, 'ConvertFrom', 'datenum' )
% = 1/Jan/0000 00:00:00
datetime( 1 + 366, 'ConvertFrom', 'datenum' )
% = 1/Jan/0001 00:00:00
% First day of year 1 after 366 days (leap year 0000 + 1 for Jan 1 )
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句