为什么Matlab中日期是公元0年开始
发布网友
发布时间:2022-11-21 12:46
我来回答
共2个回答
热心网友
时间:2024-12-05 11:19
公元元年就是公元1年
公元纪年的第一天就是 公元1年1月1日
matlab中的日期时间都用一个实y数去表示(datanum)
整数部分表示天数,小数部分表示不满一天的时间
而matlab用数值0表示日历中的0点,也就是0年一月一日
公元纪年开始在matlab中实际上是第367日
而实际上是没有公元0年的
matlab之所以用这样的表示方法也就是符合人们的习惯
第一年(公元1年)就是1,第二年(公元2年)就是2
如果将0点定义为公元1年,那么公元2年就是1,总是和实际差一年。
这就像我们用c语言的数组的时候,下标是从0开始的
第一个储存单元的下标是0,第二个储存单元的下标是1,.......
这样的下标用起来总是和对应的储存位置相差1,用不习惯就容易出错
所以有时候干脆就定义一个数组,而从下标1开始使用
第一个下标为0的储存单元空着不用,那么下标和位置就一一对应
matlab的时间纪录就类似于这样
将时间的0点定在公元0年1月1日0时0分0秒
但实际公元纪年从公元1年1月1日0时0分0秒开始,没有公元0年的概念
热心网友
时间:2024-12-05 11:19
这是软件规定,咱们个人只能使用,不能改追问与软件规定无关,在Matlab软件中,公元纪年第一天的字符串显示为0年1月1日,而百度其他回答中,没有公元0年,只能说公元元年,也就是公元1年。我可以把问题重新表述为公元纪年的第一天是哪年哪月哪日?
追答公元纪年的第一天是哪年哪月哪日:
datenum('01-01-0000')
ans =
1
datenum('01-01-0001')
ans =
367
实际上,你的问题涉及年代对照,软件涉及算法。公元元年第一天是存在的,用软件算不是'01-01-0000',应是'01-01-0001'。软件的'01-01-0000'是计算的开端,不是实际年月日。