r 检查 Sys.time() 是否在一天中给定的时间间隔内
r Check if Sys.time() is in a given interval of hours of the day
我正在寻找一个可能不太复杂的解决方案,这里有 lubridate(类似的东西)。
用例:我想检查 Sys.time()
是否在给定的 小时 间隔之间,事实证明这比我认为 b/c a datetime
似乎总是需要一个日期,例如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"))
这有效,returns TRUE
或 FALSE
取决于设置的参数。再一次,我正在寻找一个更优雅的解决方案来解决这个问题,或者这可能会帮助那些正在寻找这个的人。
欢迎任何反馈!
您可以使用 hour
。 LHS 和 RHS 上的相同 tz=
相互抵消。
hour(Sys.time()) %in% 9:18
# [1] FALSE
我正在寻找一个可能不太复杂的解决方案,这里有 lubridate(类似的东西)。
用例:我想检查 Sys.time()
是否在给定的 小时 间隔之间,事实证明这比我认为 b/c a datetime
似乎总是需要一个日期,例如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"))
这有效,returns TRUE
或 FALSE
取决于设置的参数。再一次,我正在寻找一个更优雅的解决方案来解决这个问题,或者这可能会帮助那些正在寻找这个的人。
欢迎任何反馈!
您可以使用 hour
。 LHS 和 RHS 上的相同 tz=
相互抵消。
hour(Sys.time()) %in% 9:18
# [1] FALSE