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
   17-Aug-2020

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

t2 = dateshift(t,'end','month')
t2 = datetime
   31-Aug-2020

Задайте текущую дату.

t = datetime('today')
t = datetime
   17-Aug-2020

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

t2 = dateshift(t,'start','month','next')
t2 = datetime
   01-Sep-2020

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

t2 = dateshift(t,'end','month','next')
t2 = datetime
   30-Sep-2020

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

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
   17-Aug-2020

t2 = dateshift(t,'end','week',5)
t2 = datetime
   26-Sep-2020

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

t = datetime('today')
t = datetime
   17-Aug-2020

t2 = dateshift(t,'dayofweek','Friday',1:3)
t2 = 1x3 datetime
   21-Aug-2020   28-Aug-2020   04-Sep-2020

Входные параметры

свернуть все

Введите дату и время в виде datetime массив.

Модуль времени в виде одного из следующих значений:

  • 'year'

  • 'quarter'

  • 'month'

  • 'week'

  • 'day'

  • 'hour'

  • 'minute'

  • 'second'

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

Пример: 'Sunday'

Пример 1

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string

Управляйте для сдвига значений datetime в виде вектора символов, строкового скаляра, скалярного целого числа или массива целочисленных значений. Если rule вектор символов или строка, это должно быть одно из следующих.

Значение ruleОписание
'next'Переключите datetime к следующему модулю времени или заданного дня.
(Правило по умолчанию в течение дня недели.)
'previous'Переключите datetime к предыдущему модулю времени или заданного дня.
'nearest'Переключите datetime к самому близкому вхождению модуля времени или заданного дня.
'current'Переключите datetime в текущем модуле времени, или к заданному дню на текущей неделе.
(Правило по умолчанию для модуля времени.)

Если rule целое число или массив целых чисел, затем:

  • Когда используется с входным параметром, unit, 0 соответствует запуску или концу текущего модуля для каждого datetime, 1 соответствует следующему модулю, -1 соответствует предыдущему модулю, и так далее.

  • Когда используется с входным параметром, dow, 0 соответствует заданному дню на текущей неделе для каждого datetime, 1 соответствует следующему вхождению заданного дня, -1 соответствует предыдущему вхождению, и так далее.

  • t и rule должен быть одного размера, или нужно быть скаляром.

Если вы задаете 'dayofweek' и t содержит значения datetime, которые падают в тот день недели, затем dateshift обработки те значения datetime как следующие или предыдущие случаи заданного дня недели. Например, dateshift(datetime(2015,12,24),'dayofweek','thu',rule) возвращает значение datetime с датой от 24 декабря 2015 если rule 'next', 'previous', 1, или -1, потому что 24 декабря 2015 четверг.

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

Смотрите также

|

Введенный в R2014b