Форматирование длительности
Тип Длительность является потомком типа
Форматируемое, а значит, для значений этого типа
поддерживается возможность указывать форматную строку для получения нужного
представления значения данного типа. Для форматирования длительности используется
встроенный метод Представление(Формат: Строка)
, который принимает
как аргумент указанный формат и возвращает строку с длительностью в этом
формате.
Пример
ДлительностьСеминара
типа Длительность
вызывается метод Представление(Формат: Строка)
, который позволяет
представить ее значение в виде строки соответствующего формата. Для указания места,
куда необходимо вставить значения единиц измерения длительности, используются специальные символы. Результат
форматирования помещается в переменную
ДлительностьСеминараФормат
:метод ФорматированиеДлительности(): неизвестно
пер ДлительностьСеминара = 1д5ч30м55с333мс
пер ДлительностьСеминараФормат = ДлительностьСеминара.Представление("дд:ЧЧ:мм")
возврат ДлительностьСеминараФормат
;
После вызова метода будет
возвращено:01:05:30
Представление()
не передать ни одного аргумента, то будет
использоваться значение по умолчанию: "ЗЧЧ:мм:сс"
.1ч12м.Представление("м") → 72
Если символ ближайшей меньшей единицы отсутствует в форматной строке, то данная временная единица отбрасывается:
25м13с.Представление("м") → 25
25м65с.Представление("м") → 26
В случае указания некорректной форматной строки будет выброшено исключение IllegalFormatBslException.
PnDTnHnMn.nS
, где D — дни, H —
часы, M — минуты, S — секунды.
Пример:2д3ч4м.ВФорматеIso() → P2DT3H4M
-6ч3м.ВФорматеIso() → -P6H3M
Экранирование
'
. Вне кавычек могут присутствовать
только сами специальные символы, а также небуквенные символы.
Например:метод ФорматированиеДлительности(): неизвестно
пер ДлительностьСеминара = 1д5ч30м55с333мс
пер ДатаСозданияФормат = ДлительностьСеминара.Представление("'Длительность:' д 'день' Ч 'часов'")
возврат ДатаСозданияФормат
;
После вызова метода будет
возвращено:Длительность: 1 день 5 часов
При использовании символа « ' » (одинарная кавычка) в разделе текста его необходимо экранировать еще одной кавычкой: « '' » (две подряд идущие одинарные кавычки).
Интерполяция
Для интерполяции используется метод Шаблон
типа
Строки
, который принимает как аргументы строку и переменные
объекта, которые нужно вставить в эту строку. Индекс объектов отсчитывается с нуля,
т. е. с %0.
Синтаксис:
Строки.Шаблон("Текст шаблона %Индекс1", объект с переменными).
Если объектов несколько, то передается список объектов:
Строки.Шаблон("Текст шаблона %Индекс1 ... %Индекс2 ... %ИндексN", [Объект1,
Объект2, ..., ОбъектN]).
метод ФорматированиеДлительности(): неизвестно
пер МинимальнаяДлительность = 5ч30м55с333мс
пер МаксимальнаяДлительность = 7ч40м55с333мс
пер МинимальнаяДлительностьФормат = МинимальнаяДлительность.Представление("Ч 'ч' мм 'мин'")
пер МаксимальнаяДлительностьяФормат = МаксимальнаяДлительность.Представление("Ч 'ч' мм 'мин'")
пер Диапазон = Строки.Шаблон("Длительность составит: от %0 до %1",
[МинимальнаяДлительностьФормат, МаксимальнаяДлительностьяФормат])
возврат Диапазон
;
После вызова метода будет
возвращено:Длительность составит: от 5 ч 30 мин до 7 ч 40 мин
Список доступных специальных символов для использования в форматной строке
- д
-
Количество дней.
Количество идущих подряд букв «д» задает количество цифр, которое будет использовано при выводе значения. При этом количество цифр в выводе = МАКС(количество символов «д», минимально необходимое количество цифр для вывода значения).
- Ч
-
Количество часов.
Количество подряд идущих букв «Ч» задает количество цифр, которое будет использовано при выводе значения. При этом количество цифр в выводе = МАКС(количество символов «Ч», минимально необходимое количество цифр для вывода значения).
- м
-
Количество минут.
Количество подряд идущих букв «м» задает количество цифр, которое будет использовано при выводе значения. При этом количество цифр в выводе = МАКС(количество символов «м», минимально необходимое количество цифр для вывода значения).
- с
-
Количество секунд.
Количество подряд идущих букв «с» задает количество цифр, которое будет использовано при выводе значения. При этом количество цифр в выводе = МАКС(количество символов «с», минимально необходимое количество цифр для вывода значения).
- С
-
Количество миллисекунд.
Количество идущих подряд букв «С» задает количество цифр, которое будет использовано при выводе значения. При этом количество цифр в выводе = МАКС(количество символов «С», минимально необходимое количество цифр для вывода значения).
- З
-
Знак длительности. Если длительность положительная, отформатированное значение выводится без знака минуса, если длительность отрицательная, отформатированное значение выводится с минусом: