【问题标题】:R: number of days to month end using lubridateR:使用 lubridate 到月底的天数
【发布时间】:2020-03-04 22:04:14
【问题描述】:

我正在尝试使用 lubridate 包计算当月剩余的天数。我已经能够使用下面的代码成功完成此操作;但是,这似乎非常冗长且难以阅读。

as.duration(interval(start = ymd(Sys.Date()), end =  ceiling_date(Sys.Date(), unit = "month"))) / ddays(1)

有更简单的方法吗?

【问题讨论】:

  • 不只是ceiling_date(Sys.Date(), "months") - Sys.Date() - 1 提供了您所询问的内容吗?

标签: r lubridate


【解决方案1】:

在 lubridate 中你可以这样做:

days_in_month(now()) - mday(now())

虽然这会给你一个命名向量,所以最好这样做

as.numeric(days_in_month(now()) - mday(now()))
#> [1] 27

感谢@H1 指出我们可以使用now() 而不是month(now())

【讨论】:

    【解决方案2】:

    根据@WaltS 的建议,我们可以使用ceiling_date 以“月”为单位得到下个月的开始日期,减去1天得到当月的结束日期,然后减去今天的日期得到剩余的日期一个月的几天。

    as.integer(ceiling_date(today(), "months") - today() - 1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 2021-11-21
      相关资源
      最近更新 更多