datetime.dateshift
datetime: R = dateshift (A, 'start', unit)
datetime: R = dateshift (A, 'end', unit)
datetime: R = dateshift (…, rule)
datetime: R = dateshift (A, 'dayofweek', dow)
datetime: R = dateshift (A, 'dayofweek', dow, rule)
Shift datetime values to calendar boundaries.
R = dateshift (A, returns a
datetime array in which each element of A is moved back to the start
of the calendar unit that contains it, with the finer components set
to zero. unit is 'start', unit)'second', 'minute',
'hour', 'day', 'week', 'month',
'quarter', or 'year'. A week starts on Sunday.
R = dateshift (A, moves each
element to the end of its unit: the start of the next second, minute,
hour, or day, and the last day (at midnight) of the week, month, quarter,
or year.
'end', unit)
R = dateshift (…, rule) first shifts each element
by rule whole units. rule is 'current' (the default),
'next', 'previous', 'nearest', or an integer
number of units.
R = dateshift (A, moves
each element to the next date, on or after it, whose day of the week is
dow (a number from 1 for Sunday to 7 for Saturday, or a day name),
keeping the time of day. A trailing rule of 'dayofweek', dow)'previous',
'nearest', 'current' (the day within the current week), or
an integer occurrence selects a different date.
Not-A-Time and infinite elements are returned unchanged.
Source Code: datetime
dateshift snaps a datetime to a calendar boundary — the start or end of a unit such as the month.
t = datetime (2024, 3, 15, 10, 30, 0)
t = datetime 15-Mar-2024 10:30:00
dateshift (t, 'start', 'month')
ans = datetime 01-Mar-2024
dateshift (t, 'end', 'month')
ans = datetime 31-Mar-2024
The 'dayofweek' mode moves to the next occurrence of a weekday, keeping the time of day.
t = datetime (2024, 3, 15, 10, 30, 0)
t = datetime 15-Mar-2024 10:30:00
dateshift (t, 'dayofweek', 'Monday')
ans = datetime 18-Mar-2024 10:30:00