dateshift

Переключите дату или сгенерируйте последовательность дат и времен

Описание

пример

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

Например, если вы переключаете 9:14 a.m., 27 июня 2021 к запуску часа, затем переключенное значение является 9:00 a.m., 17 июня 2021. Если вы переключаете его к запуску месяца, то переключенное значение является 12:00 a.m., 1 июня 2021.

пример

t2 = dateshift(t,'end',unit) переключает значения вперед в конец модуля времени, заданного unit.

  • Конец дня, часа, минуты, или второй является также началом следующего дня, часа, минуты, или второй. Например, если вы переключаете 9:14 a.m., 27 июня 2021 в конец часа, затем переключенное значение является 10:00 a.m., 17 июня 2021.

  • Конец года, четверти, месяц или неделя является полуночью в начале прошлого дня того года, четверти, месяц или неделя. Например, если вы переключаете 9:14 a.m., 17 июня 2021 в конец месяца, затем переключенное значение является 12:00 a.m., 30 июня 2021.

пример

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

пример

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

пример

t2 = dateshift(t,'dayofweek','weekday') сдвиги на рабочий день (понедельник-пятница), который происходит на или после каждого datetime значение в массиве t.

пример

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

Примеры

свернуть все

Создайте datetime значение с текущей датой.

t = datetime('today')
t = datetime
   24-Aug-2021

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

t2 = dateshift(t,'start','year')
t2 = datetime
   01-Jan-2021

Создайте datetime значение с текущей датой.

t = datetime('today')
t = datetime
   24-Aug-2021

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

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

Создайте datetime значение.

t = datetime('today')
t = datetime
   24-Aug-2021

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

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

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

t3 = dateshift(t,'end','month','next')
t3 = datetime
   30-Sep-2021

Создайте datetime массив. Отформатируйте его, чтобы отобразить день недели и даты.

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

t = [datetime(2014,08,03) datetime(2014,04,15)];
t.Format = 'eeee, dd MMM yyyy'
t = 1x2 datetime
   Sunday, 03 Aug 2014    Tuesday, 15 Apr 2014

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

t2 = dateshift(t,'dayofweek','Friday')
t2 = 1x2 datetime
   Friday, 08 Aug 2014   Friday, 18 Apr 2014

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

t3 = dateshift(t,'dayofweek','Monday','previous')
t3 = 1x2 datetime
   Monday, 28 Jul 2014   Monday, 14 Apr 2014

Создайте datetime массив. Отформатируйте его, чтобы отобразить день недели и даты.

t = [datetime(2021,5,30) datetime(2021,6,4)];
t.Format = 'eeee, dd MMM yyyy'
t = 1x2 datetime
   Sunday, 30 May 2021   Friday, 04 Jun 2021

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

t2 = dateshift(t,'dayofweek','weekend')
t2 = 1x2 datetime
   Sunday, 30 May 2021     Saturday, 05 Jun 2021

Создайте datetime массив. Отформатируйте его, чтобы отобразить день недели и даты.

t = [datetime(2021,5,30) datetime(2021,6,4)];
t.Format = 'eeee, dd MMM yyyy'
t = 1x2 datetime
   Sunday, 30 May 2021   Friday, 04 Jun 2021

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

t2 = dateshift(t,'dayofweek','weekday')
t2 = 1x2 datetime
   Monday, 31 May 2021   Friday, 04 Jun 2021

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

t = datetime('today');
t.Format = 'eeee, dd MMM yyyy'
t = datetime
   Tuesday, 24 Aug 2021

t2 = dateshift(t,'end','week',5)
t2 = datetime
   Saturday, 02 Oct 2021

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

t = datetime('today')
t = datetime
   24-Aug-2021

t2 = dateshift(t,'dayofweek','Friday',1:3)
t2 = 1x3 datetime
   27-Aug-2021   03-Sep-2021   10-Sep-2021

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

свернуть все

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

Модуль времени в виде одного из этих значений:

  • 'year'

  • 'quarter'

  • 'month'

  • 'week'

  • 'day'

  • 'hour'

  • 'minute'

  • 'second'

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

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

Имя или номер в течение дня недели в виде строкового скаляра или вектора символов, который является локализованным дневным именем или целым числом между 1–7.

Целые числа между 1–7 соответствуйте дням недели, как показано в таблице.

1

В воскресенье

2

В понедельник

3

Во вторник

4

В среду

5

В четверг

6

В пятницу

7

В субботу

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

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

Управляйте для сдвига datetime значения в виде 'next', 'previous'самый близкий, 'current', скалярное целое число или массив целых чисел.

Таблица описывает правила для сдвига datetime значения.

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

'next'

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

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

'previous'

Переключите datetime значение к предыдущему модулю времени или заданного дня недели.

'nearest'

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

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

'current'

Переключите datetime значение в текущем модуле времени или к заданному дню в течение текущей недели.

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

1

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

n, где n> 1

Эквивалентный 'next' управляйте применил n \times.

0

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

-1

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

-n, где n> 1

Эквивалентный 'previous' управляйте применил n \times.

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

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

Входные параметры t и rule должен иметь тот же размер, или один из них должен быть скаляром.

Поведение, когда datetime Соответствие значений 'dayofweek' Аргумент

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

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

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

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

|

Введенный в R2014b