間隔持續時間和週期
間隔是在 lubridate 中記錄時間跨度的最簡單方法。間隔是在兩個特定時刻之間發生的時間跨度。
# create interval by substracting two instants
today_start <- ymd_hms("2016-07-22 12-00-00", tz="IST")
today_start
## [1] "2016-07-22 12:00:00 IST"
today_end <- ymd_hms("2016-07-22 23-59-59", tz="IST")
today_end
## [1] "2016-07-22 23:59:59 IST"
span <- today_end - today_start
span
## Time difference of 11.99972 hours
as.interval(span, today_start)
## [1] 2016-07-22 12:00:00 IST--2016-07-22 23:59:59 IST
# create interval using interval() function
span <- interval(today_start, today_end)
[1] 2016-07-22 12:00:00 IST--2016-07-22 23:59:59 IST
持續時間測量兩個時刻之間發生的確切時間量。
duration(60, "seconds")
## [1] "60s"
duration(2, "minutes")
## [1] "120s (~2 minutes)"
注意: 由於其可變性,不使用大於周的單位。
可以使用 dseconds
,dminutes
和其他持續時間輔助函式建立持續時間。
執行 ?quick_durations
獲取完整列表。
dseconds(60)
## [1] "60s"
dhours(2)
## [1] "7200s (~2 hours)"
dyears(1)
## [1] "31536000s (~365 days)"
可以減去持續時間並將其新增到瞬間以獲得新的瞬間。
today_start + dhours(5)
## [1] "2016-07-22 17:00:00 IST"
today_start + dhours(5) + dminutes(30) + dseconds(15)
## [1] "2016-07-22 17:30:15 IST"
可以間隔建立持續時間。
as.duration(span)
[1] "43199s (~12 hours)"
週期測量兩個時刻之間發生的時鐘時間的變化。
可以使用 period
函式以及 seconds
,hours
等其他輔助函式建立週期。要獲得週期輔助函式的完整列表,請執行 ?quick_periods
。
period(1, "hour")
## [1] "1H 0M 0S"
hours(1)
## [1] "1H 0M 0S"
period(6, "months")
## [1] "6m 0d 0H 0M 0S"
months(6)
## [1] "6m 0d 0H 0M 0S"
years(1)
## [1] "1y 0m 0d 0H 0M 0S"
is.period
函式可用於檢查物件是否為句點。
is.period(years(1))
## [1] TRUE
is.period(dyears(1))
## [1] FALSE