Тип «Длительность»
Кроме конкретных значений даты и времени, прикладное значение имеют разности таких значений. Например, интересно узнать, сколько времени прошло между созданием файла и его последней модификацией, сколько продолжалась встреча и т. д. Также возникают ситуации, когда надо к указанному моменту времени прибавить какой-то интервал времени. Например, когда закончится событие, которое начинается в указанный момент времени (дата и время) и длится 4 часа 15 минут.
Для работы с интервалами времени предназначен тип Длительность
. Этот тип хранит количество миллисекунд, описывающих некоторый интервал времени. Этот интервал может быть задан при создании значения типа Длительность
или получен путем вычисления разницы между различными экземплярами работы с датой и временем.
Минимальное и максимальное значения, соответственно: -999999999999999мс и 999999999999999мс.
Значение типа Длительность
можно получить следующим способом:
-
С помощью конструктора типа, в котором составляющие интервала вводятся отдельными параметрами конструктора. Обязательность указания параметров конструктора зависит от используемого конструктора.
-
С помощью литерала, описывающего длительность. Литерал имеет вид
[+|-][<А>д][<Б>ч][<В>м][<Г>с][<Д>мс]
. В этом литерале любой элемент может быть опущен, если соответствующее значение равно нулю. Компоненты означают следующее:- <А> — значение дней.
- <Б> — значение часов.
- <В> — значение минут.
- <Г> — значение секунд.
- <Д> — значение миллисекунд.
-
В результате вычитания значений работы с датой и временем.
Для значений типа Длительность
поддерживаются стандартные арифметические операции. Значение типа Длительность
может участвовать в качестве одного из операндов в операциях сложения и вычитания для значений типа Дата
, Время
, Момент
, ДатаВремя
. Значение типа Длительность
получается в результате вычитания значений типа Дата
, Время
, Момент
, ДатаВремя
.
метод Скрипт()
пер ДатаНачала = новый Дата(2020, 3, 1)
пер ДатаОкончания = Дата{2020-03-10}
пер ВремяНачала = новый Время(9, 15, 0)
пер ВремяОкончания = Время{18:0:0}
пер Момен тВремени1 = новый Момент("2020-01-01 0:0:0 Z")
пер МоментВремени2 = новый Момент("2020-12-31 12:59:59 Z")
пер ПолтораЧаса = новый Длительность(1, 30, 0)
пер ДваДня = 2д
пер Результа тОперации: неизвестно
РезультатОперации = ДатаНачала + ДваДня
РезультатОперации = ДатаНачала + 5д
РезультатОперации = ДатаОкончания - ДатаНачала
РезультатОперации = МоментВремени2 - 5д14ч30м
;