year-month-day-arithmetic {clock} | R Documentation |
These are year-month-day methods for the arithmetic generics.
add_years()
add_quarters()
add_months()
Notably, you cannot add days to a year-month-day. For day-based arithmetic,
first convert to a time point with as_naive_time()
or as_sys_time()
.
## S3 method for class 'clock_year_month_day' add_years(x, n, ...) ## S3 method for class 'clock_year_month_day' add_quarters(x, n, ...) ## S3 method for class 'clock_year_month_day' add_months(x, n, ...)
x |
A year-month-day vector. |
n |
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. |
... |
These dots are for future extensions and must be empty. |
Adding a single quarter with add_quarters()
is equivalent to adding
3 months.
x
and n
are recycled against each other.
x
after performing the arithmetic.
x <- year_month_day(2019, 1, 1) add_years(x, 1:5) y <- year_month_day(2019, 1, 31) # Adding 1 month to `y` generates an invalid date y_plus <- add_months(y, 1:2) 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 month invalid <- invalid_detect(y_plus) y_plus[invalid] <- set_day(y_plus[invalid], "last") y_plus