R: Quickly create period objects.

quick_periods {lubridate} | R Documentation

## Quickly create period objects.

### Description

Quickly create Period objects for easy date-time manipulation. The units of the period created depend on the name of the function called. For Period objects, units do not have a fixed length until they are added to a specific date time, contrast this with `duration`. This makes periods useful for manipulations with clock times because units expand or contract in length to accomodate conventions such as leap years, leap seconds, and Daylight Savings Time.

### Usage

    seconds(x = 1)

    minutes(x = 1)

    hours(x = 1)

    days(x = 1)

    weeks(x = 1)

    years(x = 1)

    milliseconds(x = 1)

    microseconds(x = 1)

    nanoseconds(x = 1)

    picoseconds(x = 1)

    ## S3 method for class 'numeric'
    months(x, abbreviate)

### Arguments

`x` | numeric value of the number of units to be contained in the period. With the exception of seconds(), x must be an integer.
`abbreviate` | Ignored. For consistency with S3 generic in base namespace.

### Details

When paired with date-times, these functions allow date-times to be manipulated in a method similar to object oriented programming. Period objects can be added to Date, POSIXct, and POSIXlt objects to calculate new date-times.

Note: Arithmetic with periods can results in undefined behavior when non-existent dates are involved (such as February 29th in non-leap years). Please see `Period-class` for more details and `%m+%` and `add_with_rollback` for alternative operations.

### Value

a period object

### See Also

`Period-class`, `period`, `ddays`, `%m+%`, `add_with_rollback`

### Examples

    x <- as.POSIXct("2009-08-03")
    x + days(1) + hours(6) + minutes(30)
    x + days(100) - hours(8)

    class(as.Date("2009-08-09") + days(1)) # retains Date class
    as.Date("2009-08-09") + hours(12)
    class(as.Date("2009-08-09") + hours(12))
    # converts to POSIXt class to accomodate time units

    years(1) - months(7)
    c(1:3) * hours(1)
    hours(1:3)

    #sequencing
    y <- ymd(090101) # "2009-01-01 CST"
    y + months(0:11)

    # compare DST handling to durations
    boundary <- as.POSIXct("2009-03-08 01:59:59")
    boundary + days(1) # period
    boundary + ddays(1) # duration
    # seconds later)

[Package lubridate version 1.6.0 Index]