【问题标题】:Does R's 'weekdays' function get the date wrong?R 的“工作日”功能是否弄错了日期?
【发布时间】:2021-04-21 10:18:06
【问题描述】:

我想知道我的系统或我正在使用的代码是否有问题,但我似乎从weekdays 得到了错误的答案。
有人可以测试他们是否在他们的系统中得到相同的结果吗?

weekdays(as.Date("16/01/2021","%d/%m/%y"))
#[1] "Thursday"

除非我很困惑,否则今天是 2021 年 1 月 16 日,而且是星期六,而不是星期四。

更糟糕的是,我正在阅读 Wikipedia 上关于 1582 年 10 天的故事,其中说:

为了恢复协会,改革将日期提前了 10 天:1582 年 10 月 4 日星期四,随后是 1582 年 10 月 15 日星期五。

这意味着,在所有采用公历的国家/地区,上述两个日期应分别为星期四和星期五,它们之间的任何日子都不应是有效的。

嗯:

weekdays(as.Date("04/10/1582","%d/%m/%y"))
[1] "Sunday"
weekdays(as.Date("09/10/1582","%d/%m/%y"))
[1] "Friday"
weekdays(as.Date("15/10/1582","%d/%m/%y"))
[1] "Thursday"

所以今天休息了 2 天,而 1582 年 10 月 15 日休息了 1 天,所以它甚至不是线性的。

我对此感到很困惑。
有没有人得到和我一样的输出,或者知道可能出了什么问题?

【问题讨论】:

    标签: r weekday


    【解决方案1】:

    %y 应该是 %Y,即大写。 (对于 %y,它只会使用年份的前两位数字,因此将其视为 2020 年,2020 年 1 月 16 日是星期四。)

    weekdays(as.Date("16/01/2021","%d/%m/%Y"))
    ## [1] "Saturday"
    

    【讨论】:

    • 非常感谢,这是其中的一个细节!尽管如此,它仍然认为 1582 年 10 月 4 日是星期一。也许他们使用的是不同的日历,或者不在乎很久以前发生了什么:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    相关资源
    最近更新 更多