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