duration

Интервалы времени в модули длины

Описание

Значения в массиве длительности представляют истекшее время в единицах фиксированной длины, таких как часы, минуты и секунды. Вы также можете создать истекшее время в терминах фиксированной длины (24 часа) и фиксированной длины (365 .2425 дня) лет.

Работа с массивами длительности, так как вы работали бы с числовыми массивами. Можно добавлять, вычитать, сортировать, сравнивать, конкатенировать и отображать массивы длительности. Используйте массивы длительности для упрощения вычислений на массивах datetime, которые включают в себя модули, такие как часы и минуты.

Создание

Можно создать массивы длительности, которые имеют указанные временные модули с помощью years, days, hours, minutes, seconds, и milliseconds функций. Для примера, чтобы создать массив, у которого прошло время 1, 2 и 3 часов, используйте hours функция.

D = hours(1:3)
D = 

  1×3 duration array

   1 hr   2 hr   3 hr

Вы также можете создать массив длительности, используя duration функция, описанная ниже.

Описание

пример

D = duration(H,MI,S) создает массив длительности из числовых массивов, содержащий количество часов, минут и секунд, заданных H, MI, и S.

D = duration(H,MI,S,MS) добавляет миллисекунды в массив длительности, заданный как MS.

пример

D = duration(X) создает вектор-столбец длин из числовой матрицы.

пример

D = duration(TimeStrings) преобразует текст, который представляет истекшее время, в массив длительности. TimeStrings необходимо представлять время, используя либо 'hh:mm:ss' или 'dd:hh:mm:ss' формат.

пример

D = duration(TimeStrings,'InputFormat',infmt) преобразует текст в формате, заданном infmt.

пример

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

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

расширить все

Часовой, минутный и второй массивы, заданные как числовые массивы. Любой из этих массивов может быть скаляром. Все массивы, не являющиеся скалярами, должны иметь одинаковый размер.

Пример: duration(12,45,7) возвращает длительность 12 часов, 45 минут и 7 секунд.

Массив Миллисекунда, заданный как числовой массив. MS либо скаляром, либо тем же размером, что и H, MI, и S входные параметры.

Пример: duration(12,45,30,35) возвращает длительность 12 часов, 45 минут, 30 секунд и 35 миллисекунд.

Входная матрица, заданная как числовая матрица. X должно иметь три столбца, содержащие количество часов, минут и секунд, соответственно.

Пример: duration([12 30 16]) возвращает длительность 12 часов, 30 минут и 16 секунд.

Текст, представляющий прошедшее время, заданное как вектор символов, массив ячеек с векторами символов или строковыми массивами. duration функция пытается соответствовать формату TimeStrings к любому из 'hh:mm:ss' или 'dd:hh:mm:ss' форматы, где dd, hh, mm, и ss представляют дни, часы, минуты и секунды. Последнее поле может включать цифры справа от десятичного знака, представляющие дробные секунды.

Если вы знаете формат, задайте 'InputFormat' и его соответствующие infmt значение.

Пример: duration('12:30:16') возвращает длительность 12 часов, 30 минут и 16 секунд.

Пример: duration('00:05:23.86') возвращает длительность 5 минут и 23,86 секунд.

Пример: duration({'01:34:21';'23:16:54'}) возвращает вектор-столбец, содержащее две длительности.

Формат текста входа, заданный как вектор символов или строковый скаляр.

Задайте infmt как любой из следующих форматов, где dd, hh, mm, и ss представляют дни, часы, минуты и секунды:

  • 'dd:hh:mm:ss'

  • 'hh:mm:ss'

  • 'mm:ss'

  • 'hh:mm'

  • Любой из первых трех форматов с до девяти S символы для указания дробных вторых цифр, таких как 'hh:mm:ss.SSSS'

Свойства

расширить все

Формат отображения, заданный как вектор символов или строковый скаляр. Формат может задавать либо одно число с временных модулей (например 'y' в течение нескольких лет) или цифровой таймер (например 'hh:mm:ss' для количества часов, минут и секунд).

Для чисел с модулями времени задайте одно из следующего:

  • 'y' - годы фиксированной длины, где один год равен 365,2425 дней

  • 'd' - дни фиксированной длины, где один день равен 24 часам

  • 'h' - Часы

  • 'm' - Минуты

  • 's' - Секунды

Для форматов цифрового таймера задайте один из следующих:

  • 'dd:hh:mm:ss'

  • 'hh:mm:ss'

  • 'mm:ss'

  • 'hh:mm'

  • Любой из первых трех форматов с до девяти S символы для указания дробных вторых цифр, таких как 'hh:mm:ss.SSSS'

Пример: D.Format = 'm' отображает каждое значение в D как количество минут.

Примеры

свернуть все

Задайте значение datetime.

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

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

Во-первых, создайте массив часов, используя hours функция. Каждый элемент на два часа длиннее предыдущего элемента.

H = hours(0:2:6)
H = 1x4 duration
   0 hr   2 hr   4 hr   6 hr

Затем добавьте D и H.

T = D + H
T = 1x4 datetime
Columns 1 through 3

   23-Mar-2021 00:00:00   23-Mar-2021 02:00:00   23-Mar-2021 04:00:00

Column 4

   23-Mar-2021 06:00:00

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

Создайте массив длительности, задав в качестве входных параметров часы, минуты и секунды. Поскольку второй аргумент является массивом, вывод D - массив, имеющий тот же размер.

D = duration(1,30:33,0)
D = 1x4 duration
   01:30:00   01:31:00   01:32:00   01:33:00

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

X = [12 17 54;9 32 3]
X = 2×3

    12    17    54
     9    32     3

Преобразуйте матрицу в массив длительности.

D = duration(X)
D = 2x1 duration
   12:17:54
   09:32:03

Преобразуйте вектор символов, представляющий время как часы, минуты и секунды.

T = '6:34:12';
D = duration(T)
D = duration
   06:34:12

Преобразуйте массив ячеек из векторов символов.

T = {'12:54:37','8:03:12'};
D = duration(T)
D = 1x2 duration
   12:54:37   08:03:12

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

T = '1:00:54:21';
D = duration(T)
D = duration
   24:54:21

Задайте формат текста, представляющего истекшее время, и преобразуйте их в массивы длительности.

Преобразуйте вектор символов. Формат входа представляет минуты и секунды. Выходным аргументом является значение длительности, формат которого представляет часы, минуты и секунды.

T = '78:34';
infmt = 'mm:ss';
D = duration(T,'InputFormat',infmt)
D = duration
   01:18:34

Создайте массив ячеек из векторов символов, формат которых представляет минуты, секунды и доли от секунды до три десятичного числа мест.

infmt = 'mm:ss.SSS';
T = {'1:34.862' '67:07.218'}
T = 1x2 cell
    {'1:34.862'}    {'67:07.218'}

Преобразование T в массив длительности. Задайте, что формат массива длительности представляет часы, минуты, секунды и доли секунды.

outfmt = 'hh:mm:ss.SSS';
D = duration(T,'InputFormat',infmt,'Format',outfmt)
D = 1x2 duration
   00:01:34.862   01:07:07.218

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

X = [2 3 16;1 5 59;1 45 0]
X = 3×3

     2     3    16
     1     5    59
     1    45     0

D = duration(X,'Format','mm:ss')
D = 3x1 duration
   123:16
    65:59
   105:00

Совет

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

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

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