间隔持续时间和周期

间隔是在 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)"

注意: 由于其可变性,不使用大于周的单位。

可以使用 dsecondsdminutes 和其他持续时间辅助函数创建持续时间。
运行 ?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 函数以及 secondshours 等其他辅助函数创建周期。要获得周期辅助函数的完整列表,请运行 ?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