R:使用lubridate的月末天数

问题描述 投票:0回答:2

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

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

是否有更简便的方法?

r lubridate
2个回答
1
投票

在润滑中,您可以做:

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

尽管可以给您命名的矢量,所以最好这样做

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

感谢@ H1指出我们可以使用now()代替month(now())


0
投票

基于@WaltS的建议,我们可以使用ceiling_date获取下个月的开始日期,然后从中减去1天以获得当前月份的结束日期。减去今天的日期以获取月份中剩余的天数。

as.integer(ceiling_date(today(), "months") - today() - 1)
© www.soinside.com 2019 - 2024. All rights reserved.