Aliases: duration dseconds dminutes dhours ddays dweeks dmonths dyears dmilliseconds dmicroseconds dnanoseconds dpicoseconds is.duration
### ** Examples ### Separate period and units vectors duration(90, "seconds")
[1] "90s (~1.5 minutes)"
duration(1.5, "minutes")
[1] "90s (~1.5 minutes)"
duration(-1, "days")
[1] "-86400s (~-1 days)"
### Units as arguments duration(day = -1)
[1] "-86400s (~-1 days)"
duration(second = 90)
[1] "90s (~1.5 minutes)"
duration(minute = 1.5)
[1] "90s (~1.5 minutes)"
duration(mins = 1.5)
[1] "90s (~1.5 minutes)"
duration(second = 3, minute = 1.5, hour = 2, day = 6, week = 1)
[1] "1130493s (~1.87 weeks)"
duration(hour = 1, minute = -60)
[1] "0s"
### Parsing duration("2M 1sec")
[1] "121s (~2.02 minutes)"
duration("2hours 2minutes 1second")
[1] "7321s (~2.03 hours)"
duration("2d 2H 2M 2S")
[1] "180122s (~2.08 days)"
duration("2days 2hours 2mins 2secs")
[1] "180122s (~2.08 days)"
# Missing numerals default to 1. Repeated units are added up. duration("day day")
[1] "172800s (~2 days)"
### ISO 8601 parsing duration("P3Y6M4DT12H30M5S")
[1] "110842205s (~3.51 years)"
duration("P23DT23H") # M stands for months
[1] "2070000s (~3.42 weeks)"
duration("10DT10M") # M stands for minutes
[1] "864600s (~1.43 weeks)"
duration("P23DT60H 20min 100 sec") # mixing ISO and lubridate style parsing
[1] "2204500s (~3.65 weeks)"
# Comparison with characters (from v1.6.0) duration("day 2 sec") > "day 1sec"
[1] TRUE
## ELEMENTARY CONSTRUCTORS: dseconds(1)
[1] "1s"
dminutes(3.5)
[1] "210s (~3.5 minutes)"
x <- ymd("2009-08-03", tz = "America/Chicago") x + ddays(1) + dhours(6) + dminutes(30)
[1] "2009-08-04 06:30:00 CDT"
x + ddays(100) - dhours(8)
[1] "2009-11-10 15:00:00 CST"
class(as.Date("2009-08-09") + ddays(1)) # retains Date class
[1] "Date"
as.Date("2009-08-09") + dhours(12)
[1] "2009-08-09 12:00:00 UTC"
class(as.Date("2009-08-09") + dhours(12))
[1] "POSIXct" "POSIXt"
# converts to POSIXt class to accomodate time units dweeks(1) - ddays(7)
[1] "0s"
c(1:3) * dhours(1)
[1] "3600s (~1 hours)" "7200s (~2 hours)" "10800s (~3 hours)"
# compare DST handling to durations boundary <- ymd_hms("2009-03-08 01:59:59", tz = "America/Chicago") boundary + days(1) # period
[1] "2009-03-09 01:59:59 CDT"
boundary + ddays(1) # duration
[1] "2009-03-09 02:59:59 CDT"
is.duration(as.Date("2009-08-03")) # FALSE
[1] FALSE
is.duration(duration(days = 12.4)) # TRUE
[1] TRUE