【发布时间】:2020-05-20 19:49:24
【问题描述】:
我正在寻找一个可能不那么老套的解决方案,这里有 lubridate(类似的东西)。
用例:我想检查 Sys.time() 是否在 小时 的给定间隔之间,这比我想象的要复杂一点 b/c a @987654322 @ 似乎总是需要一个日期,例如paste("01-01-01", "9:00 AM")
这就是我所做的检查Sys.time() 是否在工作时间之间。我正在提取小时的数值并进行比较,这对我来说似乎很老套:)
as.numeric(format(lubridate::as_datetime(Sys.time(), tz = "America/New_York"), format = "%H")) >= as.numeric(format(ymd_hm(paste("01-01-01", "9:00 AM"), tz = "America/New_York"), format = "%H")) &
as.numeric(format(lubridate::as_datetime(Sys.time(), tz = "America/New_York"), format = "%H")) < as.numeric(format(ymd_hm(paste("01-01-01", "6:00 PM"), tz = "America/New_York"), format = "%H"))
这有效并根据设置的参数返回TRUE 或FALSE。同样,我正在寻找一个更优雅的解决方案来解决这个怪物,或者这可能会帮助那些正在寻找这个的人。
欢迎任何反馈!
【问题讨论】: