calendarDuration

Отрезки времени в календарных модулях переменной длины

Описание

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

Создание

Можно создать календарные массивы длительности, которые имеют модули требуемого времени с помощью calyearscalquarterscalmonthscalweeks, и caldays функции. Например, чтобы создать массив, который имеет прошедшие времена 1, 2, и 3 календарных месяца, используют calmonths функция.

M = calmonths(1:3)
M = 

  1×3 calendarDuration array

   1mo   2mo   3mo

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

Описание

пример

L = calendarDuration(Y,M,D) создает массив календарной длительности от числовых массивов YM, и D, содержа номер лет, месяцев и дней, соответственно.

L = calendarDuration(Y,M,D,H,MI,S) также включает часы, минуты и секунды, заданные H, MI, и S, соответственно.

пример

L = calendarDuration(Y,M,D,T) создает массив календарной длительности от числовых массивов, содержащих номер лет, месяцев, и дней и массива длительности T содержа прошедшие времена.

L = calendarDuration(X) создает массив календарной длительности из числовой матрицы.

пример

L = calendarDuration(___,'Format',displayFormat) дополнительно задает displayFormat как значение Format свойство L. Format свойство изменяет отображение L но не его значения. Можно использовать этот синтаксис с любым из аргументов от предыдущих синтаксисов.

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

развернуть все

Годы, месяцы и дни в виде числовых массивов. Эти массивы или должны быть одного размера, или любой может быть скаляром. Y,M,D должен содержать только целочисленные значения.

Определение значений месяца, больше, чем 12, эквивалентно определению многих лет плюс много месяцев. Например, 25 месяцев равны 2 годам и 1 месяцу. Однако дневные значения не эквивалентны многим месяцам, потому что номер дней за месяц не фиксируется и не может быть определен, пока вы не добавляете календарную длительность в определенный datetime.

Пример: L = calendarDuration(2,10,24) возвращает календарную длительность 2 лет, 10 месяцев и 24 дней.

Часы, минуты и секунды в виде числовых массивов. Эти массивы или должны быть одного размера, или любой может быть скаляром. Задайте доли секунды как часть S. H и MI массивы должны содержать только целочисленные значения.

Определение значений месяца, больше, чем 12, эквивалентно определению многих лет плюс много месяцев. Например, 25 месяцев равны 2 годам и 1 месяцу. Мелкие значения, больше, чем 60, переносят на многие часы. Вторые значения, больше, чем 60, переносят на многие минуты. Однако дневные значения не эквивалентны многим месяцам, потому что номер дней за месяц не фиксируется и не может быть определен, пока вы не добавляете календарную длительность в определенный datetime. Точно так же значения часа не эквивалентны многим календарным дням.

Пример: L = calendarDuration(2,10,24,12,45,07.451) возвращает календарную длительность 2 лет, 10 месяцев, 24 дней, 12 часов, 45 минут и 7,451 секунд.

Прошедшие времена в виде массива длительности. T любой должен быть одного размера с YM, и D входные параметры или быть скаляром.

Пример: T = hours(5); L = calendarDuration(2,10,24,T) добавляет длительность 5 часов к L.

Годы, месяцы, дни, и опционально, времена в виде числовой матрицы. X должен иметь или три или шесть столбцов. Первые три столбца содержат номер лет, месяцев и дней, соответственно. Если X имеет шесть столбцов, затем последние три столбца содержат номер часов, минут и секунд, соответственно.

Все столбцы должны содержать целочисленные значения, за исключением шестого столбца. Можно задать доли секунды в шестом столбце.

Пример: L = calendarDuration([2 10 24]) возвращает календарную длительность 2 лет, 10 месяцев и 24 дней.

Пример: L = calendarDuration([2 10 24 12 45 07.451]) возвращает календарную длительность 2 лет, 10 месяцев, 24 дней, 12 часов, 45 минут и 7,451 секунд.

Свойства

развернуть все

Формат отображения на календарное время в виде комбинации символов yQMWD, и t, в том порядке. Формат должен включать mD, и t.

СимволМодульНеобходимый?
yГодынет
qЧетверти (множители 3 месяцев)нет
mМесяцыда
wНеделинет
dДнида
tВремя (часы, минуты и секунды)да

Чтобы задать количество цифр, отображенных для долей секунды, используйте format функция.

Если значение даты или компонента времени является нулем, то это не отображено.

Пример: L.Format = 'yqmdt' отображения каждое значение в L как номер календарных лет, четвертей, месяцы и дни, наряду с его компонентом времени.

Примеры

свернуть все

Создайте стоимость datetime.

D = datetime(2017,7,1)
D = datetime
   01-Jul-2017

Создайте массив datetime, в котором каждое значение запускается в первый день различного месяца. Один удобный способ создать такой массив состоит в том, чтобы добавить массив календарных месяцев к D.

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

C = calmonths(0:3)
C = 1x4 calendarDuration
   0mo   1mo   2mo   3mo

Затем добавьте D и C. Начиная с C календарный массив длительности, эта операция составляет то, что месяцы могут иметь различные числа дней.

M = D + C
M = 1x4 datetime
   01-Jul-2017   01-Aug-2017   01-Sep-2017   01-Oct-2017

Из-за високосных годов и Летнего времени, календарные годы, месяцы и дни могут иметь различные длины. Чтобы разместить эти различные отрезки времени, используйте календарные массивы длительности в арифметических операциях на массивах datetime.

L = calendarDuration(1,3,15)
L = calendarDuration
   1y 3mo 15d

Создайте числовой массив, представляющий числа дней.

D = [1 3;4 2]
D = 2×2

     1     3
     4     2

Создайте массив длительности, представляющий прошедшие времена в часах. Один элемент задает 25 часов, который более длинен, чем один день.

T = hours([1 2; 25 12])
T = 2x2 duration
    1 hr    2 hr
   25 hr   12 hr

Создайте календарный массив длительности. Задайте входные параметры DT, и скалярные значения в течение года и месяца. Второй вход, 13, задает больше месяцев, чем существует через один год.

L = calendarDuration(1,13,D,T)
L = 2x2 calendarDuration
    2y 1mo 1d 1h 0m 0s    2y 1mo 3d 2h 0m 0s
   2y 1mo 4d 25h 0m 0s   2y 1mo 2d 12h 0m 0s

Значения месяца, больше, чем 12, переносят на годы в отображении. Однако значения часа, больше, чем 24, не переносят на дни в отображении. Из-за Летнего времени, номер часов за календарный день является не обязательно 24 часами.

Создайте календарный массив длительности и задайте формат, который отображает значения в терминах месяцев, недель, дней и времени.

L = calendarDuration(1,1,5:9,'Format','mwdt')
L = 1x5 calendarDuration
      13mo 5d      13mo 6d      13mo 1w   13mo 1w 1d   13mo 1w 2d

Поскольку формат не включает 'y' в течение многих лет входные значения 1 года и 1 месяца отображаются как их сумма, 13mo. В то время как 't' должен быть задан, компонент времени не отображен, если часы, минуты и секунды являются всем нулем.

Советы

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

  • Когда вы добавляете calendarDuration массив, который содержит больше чем один модуль к datetime, MATLAB® всегда, добавляет большие модули сначала. Если t datetime, затем эта команда:

    t + calendarDuration(1,2,3)
    эквивалентен:
    t + calyears(1) + calmonths(2) + caldays(3)

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

Введенный в R2014b

Для просмотра документации необходимо авторизоваться на сайте