Перейти к основному содержимому

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

Стд::Время::Длительность

Количество времени с точностью до миллисекунд. Может быть отрицательным. Максимальное значение 999999999999999мс. Минимальное значение -999999999999999мс.

Сравнение структурное. Два экземпляра длительности равны, если равны их компоненты (часы, минуты, секунды, миллисекунды).

Иерархия типа

Базовые типы: Объект, Представляемое, Сравнимое<Длительность>, Форматируемое


Примеры

  • 30с - 30 секунд
  • 2ч30м - 2 часа 30 минут

Разница между Часы и ВЧасах и аналогичными:

знч Длительность = 
знч Часы = Длительность.Часы // 5
знч ВЧасах = Длительность.ВЧасах() // 29

Литералы

Литерал имеет вид [+|-][<А>д][<Б>ч][<В>м][<Г>с][<Д>мс]. Любой элемент может быть опущен, если соответствующее значение равно нулю. Где:

  • <А> - значение дней
  • <Б> - значение часов
  • <В> - значение минут
  • <Г> - значение секунд
  • <Д> - значение миллисекунд

Арифметические операции

  • Длительность + Длительность = Длительность (сложение)
  • Длительность - Длительность = Длительность (вычитание)
  • Длительность * Число = Длительность (умножение)
  • Длительность / Число = Длительность (деление)
  • -Длительность = Длительность (унарный минус)

Приоритет операций (в порядке уменьшения):

  • Выражения в круглых скобках
    • (унарный минус)
  • Операции *, /
  • Операции +, -

Конструкторы

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

Длительность(
Часы: Число,
Минуты: Число,
Секунды: Число,
Миллисекунды: Число,
Отрицательная: Булево = Ложь)
Перегрузка:
Длительность(Дни: Число, Часы: Число, Минуты: Число, Секунды: Число, Миллисекунды: Число, Отрицательная: Булево = Ложь)

Создает новый экземпляр длительности с заданными компонентами Минуты, Секунды, Миллисекунды и признаком отрицательности Отрицательная.


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

Длительность(
Дни: Число,
Часы: Число,
Минуты: Число,
Секунды: Число,
Миллисекунды: Число,
Отрицательная: Булево = Ложь)
Перегрузка:
Длительность(Часы: Число, Минуты: Число, Секунды: Число, Миллисекунды: Число, Отрицательная: Булево = Ложь)

Создает новый экземпляр длительности с заданными компонентами Дни, Минуты, Секунды, Миллисекунды и признаком отрицательности Отрицательная.


Свойства

Дни

ТолькоЧтение

Дни: Число

Количество дней.


Миллисекунды

ТолькоЧтение

Миллисекунды: Число

Количество миллисекунд.


Минуты

ТолькоЧтение

Минуты: Число

Количество минут.


Секунды

ТолькоЧтение

Секунды: Число

Количество секунд.


Часы

ТолькоЧтение

Часы: Число

Количество часов.


Методы

ВДнях

ВДнях(): Число
Возвращает целое количество дней, соответствующее данному экземпляру длительности. Т.е. преобразует всю длительность в целое число дней (включая старшие разряды).


ВМиллисекундах

ВМиллисекундах(): Число
Возвращает целое количество миллисекунд, соответствующее данному экземпляру длительности. Т.е. преобразует всю длительность в целое число миллисекунд (включая старшие разряды).


ВМинутах

ВМинутах(): Число
Возвращает целое количество минут, соответствующее данному экземпляру длительности. Т.е. преобразует всю длительность в целое число минут (включая старшие разряды).


ВСекундах

ВСекундах(): Число
Возвращает целое количество секунд, соответствующее данному экземпляру длительности. Т.е. преобразует всю длительность в целое число секунд (включая старшие разряды).


ВСтроку

ВСтроку(): Строка
Переопределение: ВСтроку

Возвращает строковое представление длительности в формате "чч:мм:сс.ССС", где "чч" - суммарное с днями количество часов. Пример: "60:12:30.653".


ВФорматеIso

ВФорматеIso(): Строка
Возвращает строковое представление длительности в формате ISO-8601 вида P[n]DT[n]H[n]M[n].[n]S, где

  • [n] - подставляемое значение той или иной единицы времени;
  • P - обозначение периода (указывается в начале строкового представления);
  • D - обозначение дней;
  • T - указатель, что дальше будут идти компоненты времени;
  • H - обозначение часов;
  • M - обозначение минут;
  • S - обозначение секунд и миллисекунд (следуют друг за другом через точку).

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

Примеры

Англоязычное использованиеРусскоязычное использованиеРезультат
0h.InIsoFormat()0ч.ВФорматеIso()PT0S
6d5ms.InIsoFromat()6д5мс.ВФорматеIso()P6DT0.005S
240h.InIsoFormat()240ч.ВФорматеIso()P10D
300h.InIsoFormat()300ч.ВФорматеIso()P12DT12H
(-300h).InIsoFormat()(-300ч).ВФорматеIso()-P12DT12H

ВЧасах

ВЧасах(): Число
Возвращает целое количество часов, соответствующее данному экземпляру длительности. Т.е. преобразует всю длительность в целое число часов (включая старшие разряды).


ДобавитьДни

Создает длительность из указанного количества дней Дни.


ДобавитьМиллисекунды

@ПроверятьИспользованиеЗначения
ДобавитьМиллисекунды(Миллисекунды: Число): Длительность
Возвращает новый экземпляр длительности, полученный путем добавления указанного количество миллисекунд Миллисекунды к текущему значению.


ДобавитьМинуты

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


ДобавитьСекунды

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


ДобавитьЧасы

Создает длительность из указанного количества часов Часы.


ИзДней

Статический

ИзДней(Дни: Число): Длительность
Создает длительность из указанного количества дней Дни.


ИзМиллисекунд

Статический

ИзМиллисекунд(Миллисекунды: Число): Длительность
Создает длительность из указанного количества миллисекунд Миллисекунды.


ИзМинут

Статический

ИзМинут(Минуты: Число): Длительность
Создает длительность из указанного количества минут Минуты.


ИзСекунд

Статический

ИзСекунд(Секунды: Число): Длительность
Создает длительность из указанного количества секунд Секунды.


ИзЧасов

Статический

ИзЧасов(Часы: Число): Длительность
Создает длительность из указанного количества часов Часы.


Нулевая

Нулевая(): Булево
Проверяет что длительность равна 0мс.


Отрицательная

Отрицательная(): Булево
Проверяет что длительность отрицательная.


Положительная

Положительная(): Булево
Проверяет что длительность положительная.


Представление

Представление(): Строка
Переопределение: Представление

Перегрузка:
Представление(Формат: Строка): Строка

Возвращает строковое представление длительности в формате "чч:мм:сс", где "чч" - суммарное с днями количество часов. Пример: "60:12:30".


Представление

Представление(Формат: Строка): Строка
Переопределение: Представление

Перегрузка:
Представление(): Строка

Возвращает строковое представление длительности в указанном формате Формат. Форматная строка представляет собой строку из следующих элементов:

  • д - количество дней;
  • Ч - количество часов;
  • м - количество минут;
  • с - количество секунд;
  • С - количество миллисекунд.

Количество подряд идущих одинаковых элементов из списка выше задают минимальное количество цифр, которое нужно вывести в представлении той или иной временной единицы. При этом, если в строке Формат отсутствуют токены, обозначающие какую-либо временную единицу, то данная единица переводится в ближайшую меньшую единицу (при необходимости). Если таковая отсутствует, то данная временная единица отбрасывается. Использование элементов, отвечающих за одну и ту же временную единицу не подряд в форматной строке - запрещено.

"ЧЧ" -> разрешено
"ЧЧ-ЧЧ" -> запрещено

Использовать элемент, отвечающий за вывод знака, можно лишь единожды.

В любом месте форматной строки может быть сделана текстовая вставка. Она выделяется в одинарные кавычки ' с двух сторон. В случае необходимости использования одинарной кавычки в текстовой вставке - ее необходимо экранировать путем написания двух подряд идущих одинарных кавычек ''. Также в любом месте форматной строки может быть сделана вставка из небуквенных символов. Такая вставка никак не выделяется.

Примеры

Англоязычное использованиеРусскоязычное использованиеРезультат
2h3m4s.Presentation("H:m:s")2ч3м4с.Представление("ЗЧ:м:с")2:3:4
2h3m4s.Presentation("HH:mm:ss")2ч3м4с.Представление("ЧЧ:мм:сс")02:03:04
(-20h3m40s).Presentation("TH:m:s")(-20ч3м40с).Представление("ЗЧ:м:с")-20:3:40
5d.Presentation("HH:mm")5д.Представление("ЧЧ:мм")120:00
20h30m40s.Presentation("'''Длительность'':'(HHH'ч'-mmm'м'-sss'с')")20ч30м40с.Представление("'''Длительность'':'(ЧЧЧ'ч'-ммм'м'-ссс'с')")'Длительность':(020ч-030м-040с)

Список унаследованных методов

Объект

ПолучитьТип

Сравнимое

Сравнить