date_shift()
shifts x
to the target
weekday. You can shift to the next
or previous weekday. If x
is currently on the target
weekday, you can
choose to leave it alone or advance it to the next instance of the target
.
There are separate help pages for shifting dates and date-times:
Arguments
- x
[Date / POSIXct / POSIXlt]
A date or date-time vector.
- target
[weekday]
A weekday created from
weekday()
to target.Generally this is length 1, but can also be the same length as
x
.- ...
These dots are for future extensions and must be empty.
- which
[character(1)]
One of:
"next"
: Shift to the next instance of thetarget
weekday."previous
: Shift to the previous instance of thetarget
weekday.
- boundary
[character(1)]
One of:
"keep"
: Ifx
is currently on thetarget
weekday, return it."advance"
: Ifx
is currently on thetarget
weekday, advance it anyways.
Examples
# See the type specific documentation for more examples
x <- as.Date("2019-01-01") + 0:1
# A Tuesday and Wednesday
as_weekday(x)
#> <weekday[2]>
#> [1] Tue Wed
monday <- weekday(clock_weekdays$monday)
# Shift to the next Monday
date_shift(x, monday)
#> [1] "2019-01-07" "2019-01-07"