Длительность
Стд::Время::Длительность
Количество времени с точностью до миллисекунд.
Может быть отрицательным.
Максимальное значение 999999999999999мс
.
Минимальное значение -999999999999999мс
.
Сравнение структурное. Два экземпляра длительности равны, если равны их компоненты (часы, минуты, секунды, миллисекунды).
Иерархия типа
Базовые типы: Объект, Представляемое, Сравнимое<Длительность>, Форматируемое
Примеры
30с
- 30 секунд2ч30м
- 2 часа 30 минут
Разница между Часы и ВЧасах и аналогичными:
знч Длительность = 1д5ч6м
знч Часы = Длительность.Часы // 5
знч ВЧасах = Дл ительность.ВЧасах() // 29
Литералы
Литерал имеет вид [+|-][<А>д][<Б>ч][<В>м][<Г>с][<Д>мс]. Любой элемент может быть опущен, если соответствующее значение равно нулю. Где:
- <А> - значение дней
- <Б> - значение часов
- <В> - значение минут
- <Г> - значение секунд
- <Д> - значение миллисекунд
Арифметические операции
- Длительность + Длительность = Длительность (сложение)
- Длительность - Длительность = Длительность (вычитание)
- Длительность * Число = Длительность (умножение)
- Длительность / Число = Длительность (деление)
- -Длительность = Длительность (унарный минус)
Приоритет операций (в порядке уменьшения):
- Выражения в круглых скобках
-
- (унарный минус)
- Операции *, /
- Операции +, -
Конструкторы
Длительность
Длительность(Дни: Число, Часы: Число, Минуты: Число, Секунды: Число, Миллисекунды: Число, Отрицательная: Булево = Ложь)
Создает новый экземпляр длительности с заданными компонентами Минуты
, Секунды
, Миллисекунды
и признаком отрицательности Отрицательная
.
Длительность
Длительность(Часы: Число, Минуты: Число, Секунды: Число, Миллисекунды: Число, Отрицательная: Булево = Ложь)
Создает новый экземпляр длительности с заданными компонентами Дни
, Минуты
, Секунды
, Миллисекунды
и признаком отрицательности Отрицательная
.
Свойства
Дни
ТолькоЧтение
Дни: Число
Количество дней.
Миллисекунды
ТолькоЧтение
Миллисекунды: Число
Количество миллисекунд.
Минуты
ТолькоЧтение
Минуты: Число
Количество минут.
Секунды
ТолькоЧтение
Секунды: Число
Количество секунд.
Часы
ТолькоЧтение
Часы: Число
Количество часов.
Методы
ВДнях
ВДнях(): Число
ВМиллисекундах
ВМиллисекундах(): Число
ВМинутах
ВМинутах(): Число
ВСекундах
ВСекундах(): Число
ВСтроку
ВСтроку(): Строка
Возвращает строковое представление длительности в формате "чч:мм:сс.ССС"
, где "чч" - суммарное с днями количество часов.
Пример: "60:12:30.653"
.
ВФорматеIso
ВФорматеIso(): Строка
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с) |