exponenta event banner

dateshift

Дата смены или генерация последовательности дат и времени

Описание

t2 = dateshift(t,'start',unit) сдвигает каждое значение в datetime множество t назад в начало единицы времени, указанной unit. Продукция t2 имеет тот же размер, что и t.

пример

t2 = dateshift(t,'end',unit) сдвигает значения, предшествующие концу единицы времени, указанной unit. Конец дня, час, минута или секунда также является началом следующего. Например, окончание дня наступает в полночь в начале следующего дня. Конец года, квартала, месяца или недели - полночь в начале последнего дня этого периода времени.

пример

t2 = dateshift(t,'dayofweek',dow) возвращает следующее вхождение указанного дня недели после каждого datetime значение в массиве t. Если дата в t приходится на указанный день недели, затем dateshift возвращает ту же дату.

пример

t2 = dateshift(___,rule) сдвигает каждое значение в массиве t в соответствии с шаблоном, указанным rule. Этот синтаксис можно использовать с любым из аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Определите текущую дату.

t = datetime('today')
t = datetime
   23-Mar-2021

Переместите дату на конец того же месяца.

t2 = dateshift(t,'end','month')
t2 = datetime
   31-Mar-2021

Определите текущую дату.

t = datetime('today')
t = datetime
   23-Mar-2021

Перенесите дату на начало следующего месяца.

t2 = dateshift(t,'start','month','next')
t2 = datetime
   01-Apr-2021

Перенесите дату на конец следующего месяца.

t2 = dateshift(t,'end','month','next')
t2 = datetime
   30-Apr-2021

Перенесите массив дат на следующую пятницу.

t = datetime([2014,08,03;2014,04,15])
t = 2x1 datetime
   03-Aug-2014
   15-Apr-2014

t2 = dateshift(t,'dayofweek','Friday')
t2 = 2x1 datetime
   08-Aug-2014
   18-Apr-2014

Переместите массив дат назад к предыдущему понедельнику.

t2 = dateshift(t,'dayofweek','Monday','previous')
t2 = 2x1 datetime
   28-Jul-2014
   14-Apr-2014

Найдите дату, которая приходится на конец пятой недели с сегодняшнего дня.

t = datetime('today')
t = datetime
   23-Mar-2021

t2 = dateshift(t,'end','week',5)
t2 = datetime
   01-May-2021

Создайте последовательность дат, состоящую из следующих трех экземпляров пятницы.

t = datetime('today')
t = datetime
   23-Mar-2021

t2 = dateshift(t,'dayofweek','Friday',1:3)
t2 = 1x3 datetime
   26-Mar-2021   02-Apr-2021   09-Apr-2021

Входные аргументы

свернуть все

Дата и время ввода, указанные как datetime массив.

Единица времени, указанная как одно из следующих значений:

  • 'year'

  • 'quarter'

  • 'month'

  • 'week'

  • 'day'

  • 'hour'

  • 'minute'

  • 'second'

Пример: t2 = dateshift(t,'start','hour')

Пример: t2 = dateshift(t,'end','month')

День недели, указанный как скалярное целое число, указывающее номер дня недели, или вектор символов или строковый скаляр, содержащий локализованное имя дня.

Пример: t2 = dateshift(t,'dayofweek','Sunday')

Пример: t2 = dateshift(t,'dayofweek',1)

Правило смены datetime значения, указанные как 'next', 'previous', 'nearest', 'current'скалярное целое число или массив целых чисел.

В таблице описаны правила смены datetime значения.

ПравилоОписание

'next'

Изменение datetime значение для следующей единицы времени или указанного дня недели.

Примечание.Это правило является правилом по умолчанию для 'dayofweek' входной аргумент.

'previous'

Изменение datetime значение предыдущей единицы времени или указанного дня недели.

'nearest'

Изменение datetime значение до ближайшего наступления единицы времени или указанного дня недели.

Фактически, это правило округляется datetime значения.

'current'

Изменение datetime значение в пределах текущей единицы времени или до указанного дня в пределах текущей недели.

Примечание.Это правило является правилом по умолчанию для 'start' и 'end' входные аргументы.

1

Эквивалентно 'next' правило.

n, где n > 1

Эквивалентно 'next' применено правило n времена.

0

Эквивалентно 'current' правило.

-1

Эквивалентно 'previous' правило.

-n, где n > 1

Эквивалентно 'previous' применено правило n времена.

Массив целых чисел

Сдвигает каждое значение в t согласно правилу, указанному соответствующим целым числом в rule.

Входные аргументы t и rule должен иметь одинаковый размер или один из них должен быть скалярным.

Поведение при datetime Значения совпадают 'dayofweek' Аргумент

При указании 'dayofweek' и t содержит datetime значения, приходящиеся на указанный день недели, затем dateshift лечит их datetime значения в качестве следующего или предыдущего вхождения указанного дня недели.

Например, dateshift(datetime(2015,12,24),'dayofweek','Thursday',rule) возвращает datetime на дату 24 декабря 2015 года, если rule является 'next', 'previous', 'nearest', 1, или -1, потому что 24 декабря 2015 года - четверг.

Расширенные возможности

См. также

|

Представлен в R2014b