首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R: chron -将儒略日转换为公历日期

R: chron -将儒略日转换为公历日期
EN

Stack Overflow用户
提问于 2015-06-27 04:20:46
回答 1查看 407关注 0票数 0

我正在使用一个时间序列数据集,该数据集自原始时间(1-1-1)以来以Julian天为单位。我正在使用chron包中的函数chron来完成从儒略日到公历日期的转换。然而,为了检查我的结果,除了在R中测试我的结果之外,我还决定将其与一些网站(例如,http://www.timeanddate.com/date/durationresult.html)进行比较,这些网站计算两个日期之间的天数。下面是一个可重现的代码:

代码语言:javascript
复制
library('chron')
date <- seq(from=729391,to=729756,by=30)
d.year <- 1
d.month <- 1
d.day <- 1
new.date <- chron(date,origin. = c(d.year,d.month,d.day), out.format = 'year-d-m')

当我运行下面的代码时,我应该对所有元素都得到0,如果转换完成了correctly.In事实,我就会得到0:

代码语言:javascript
复制
> library('lubridate')
> ymd(as.character(new.date)) - ymd('0001-01-01') - date
Time differences in days
 [1] 0 0 0 0 0 0 0 0 0 0 0 0 0

当我将它与我得到的结果不同的网站进行比较时。例如,对于元素new.date[1] (它是1998-Jan-03),我使用上面引用的网站来计算0001-01-011998-Jan-03之间的天数,我得到了729,393,而我应该得到729,391。我知道网站在计算中包含了开始日期,尽管仍然存在1的差异。如果你能说明这一点,谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2015-06-27 07:50:51

Gnu EMACS日历工具给出了729,392 (包括729,392),相当于差792,391;它在计算时间间隔中的天数时使用公历。它还规定公元1年1月1日与公元1世纪1月3日和公元1世纪1月3日是同一天。因此,如果其他网站将1582年之前的日期视为公历日期,则将从公元1年1月1日(公元前1年12月30日,公元前1年12月30日)到1998年1月3日(公元前1年1日)公历,并将导致计数比间隔的两端都被视为公历的情况下多出两天。

顺便说一句,最初的Gnu EMACS日历是由Edward Reingold完成的;他和Nachum Dershowitz撰写了日历计算,由剑桥大学出版社出版。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31081502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档