R: Arithmetic: year-day

year-day-arithmetic {clock} | R Documentation

## Arithmetic: year-day

### Description

These are year-day methods for the arithmetic generics.

- `add_years()`

Notably, you cannot add days to a year-day. For day-based arithmetic, first convert to a time point with `as_naive_time()` or `as_sys_time()`.

### Usage

    ## S3 method for class 'clock_year_day'
    add_years(x, n, ...)

### Arguments

`x` | `[clock_year_day]` A year-day vector.
`n` | `[integer / clock_duration]` An integer vector to be converted to a duration, or a duration corresponding to the arithmetic function being used. This corresponds to the number of duration units to add. `n` may be negative to subtract units of duration.
`...` | These dots are for future extensions and must be empty.

### Details

`x` and `n` are recycled against each other.

### Value

`x` after performing the arithmetic.

### Examples

    x <- year_day(2019, 10)

    add_years(x, 1:5)

    # A valid day in a leap year
    y <- year_day(2020, 366)
    y

    # Adding 1 year to `y` generates an invalid date
    y_plus <- add_years(y, 1)
    y_plus

    # Invalid dates are fine, as long as they are eventually resolved
    # by either manually resolving, or by calling `invalid_resolve()`

    # Resolve by returning the previous / next valid moment in time
    invalid_resolve(y_plus, invalid = "previous")
    invalid_resolve(y_plus, invalid = "next")

    # Manually resolve by setting to the last day of the year
    invalid <- invalid_detect(y_plus)
    y_plus[invalid] <- set_day(y_plus[invalid], "last")
    y_plus

[Package clock version 0.4.1 Index]