длительность

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

Описание

Значения в массиве длительности представляют прошедшие времена в модулях фиксированной длины, таких как часы, минуты и секунды. Также можно создать прошедшие времена с точки зрения фиксированной длины (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)
D = duration(H,MI,S,MS)
D = duration(X)
D = duration(TimeStrings)
D = duration(TimeStrings,'InputFormat',infmt)
D = duration(___,'Format',displayFormat)

Описание

пример

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'

Свойства

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

Формат отображения, заданный как вектор символов или скаляр строки. Формат может быть любой одним номером с единицами измерения времени (такими как '0.5 yrs') или цифровой таймер (такими как '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
   21-Feb-2019

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

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

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

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

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

   21-Feb-2019 00:00:00   21-Feb-2019 02:00:00   21-Feb-2019 04:00:00

Column 4

   21-Feb-2019 06:00:00

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

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

D = duration(1,30:33,0)
D = 1x4 duration array
   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 array
   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 array
   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 array
    {'1:34.862'}    {'67:07.218'}

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

outfmt = 'hh:mm:ss.SSS';
D = duration(T,'InputFormat',infmt,'Format',outfmt)
D = 1x2 duration array
   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 array
   123:16
    65:59
   105:00

Советы

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

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

Введенный в R2014b