exponenta event banner

продолжительность

Продолжительность времени в единицах фиксированной длины

Описание

Значения в массиве длительности представляют истекшее время в единицах фиксированной длины, таких как часы, минуты и секунды. Можно также создать время в виде фиксированных (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 с помощью 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