r - 计算R中不同日期范围的闰日
问题描述
我正在使用 R 和 lubridate。
我需要计算在一堆不同日期范围内发生的闰日数。我已经做了很多谷歌搜索,但大多数结果似乎只是想知道某些年份是否是闰年,但不要考虑您每年的开始和结束位置,或者是针对我不熟悉的不同程序。
我在想一个函数将是最好的方法,但正在努力让代码下降。
我的想法是使用 lubridate 的函数计算日期范围内的闰年数leap_year
,然后检查期间开始和结束时的部分年份,并在需要时添加/减去闰年计数。
start_date <- as.Date("2008-03-31")
end_date <- as.Date("2020-09-30")
years_list <- seq(start_date, end_date, by="years")
leap_days <- sum(leap_year(years_list))
下一步是检查部分年份并leap_days
在需要时添加/减去,这是我正在努力的地方。这种情况的预期结果是 3 年(2012 年、2016 年和 2020 年闰年)。最终,我会检查很多不同的日期范围,而不仅仅是这个。
任何帮助表示赞赏。
解决方案
如果您接受“闰日”始终是 2 月 29 日这一前提,那么也许
grep("-02-29", seq(start_date, end_date, by = "day"), value = TRUE)
# [1] "2012-02-29" "2016-02-29" "2020-02-29"
推荐阅读
- javascript - Chrome扩展历史API的代理回调函数
- docker - 无法使用前端 dockerfile 解决
- r - 在数据库中保存/检索 R 对象,或 R 中对象持久性的其他解决方案
- reactjs - 条件反应返回语句
- xml - 如何使用pyspark从xml的每个嵌套节点创建一个表
- java - 如何垂直格式化多行列表
- angular - Webpack如何像Angular一样在装饰器中导入html模板
- javascript - Firebase 实时数据库我无法更改数据
- python - Python无法在库中导入模块
- java - java.lang.IllegalStateException:找不到类型的阅读器:类 io.helidon.examples.quickstart.se.pokemon.Pokemon