Интервал

Предыдущая страницаВ началоСледующая страница

Группа Интервал содержит операторы, предназначенные для работы с временными интервалами.

Создать интервал. Создаёт интервал из точки начала и точки конца. Начало интервала должно быть меньше конца.

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

Начало интервала. Возвращает точку начала интервала.

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

Конец интервала. Возвращает точку конца интервала.

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

Входит ли начало в интервал. Возвращает логическое значение, указывающее входит ли точка начала в интервал.

В настройках аргумента оператора указывается интервал, для которого определяется вхождение в него точки начала.

В приведённом ниже примере оператор Входит ли начало в интервал является аргументом оператора Условие, в соответствии с которым, если точка начала входит в интервал, то элемент объекта на диаграмме будет отображаться голубым цветом.

Входит ли конец в интервал. Возвращает логическое значение, указывающее входит ли точка конца в интервал.

В настройках аргумента оператора указывается интервал, для которого определяется вхождение в него точки конца.

Длина интервала. Возвращает длину интервала.

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

Середина интервала. Возвращает точку, находящуюся посередине интервала.

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

Для интервалов, значения точек начала и конца которых заданы целочисленными типами, может не происходить возврата точки середины. Например, у интервала с начальной точкой "1" и конечной точкой "2" средней точки не будет, так как значение "1.5" не является целочисленным.

Сместить интервалы. Смещает интервалы на заданную величину.

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

В приведённом примере первый аргумент задаёт отображение элемента с временным интервалом [18.11.2024 0:00:00; 29.11.2024 23:59:59], а второй аргумент задаёт смещение "-3.00:00:00". Таким образом, в результате операции будет получен новый интервал [15.11.2024 0:00:00; 26.11.2024 23:59:59], а элемент на временной диаграмме будет смещён влево на 3 дня, 0 часов, 0 минут, 0 секунд.  

Исключить интервалы. Вырезает из интервалов, заданных первым аргументов, интервалы, заданные вторым аргументом.

В приведённом примере первый аргумент задаёт параллельное отображение элементов с интервалами [26.01.2022 9:00:00; 05.02.2022 17:00:00], [02.02.2022 9:00:00; 10.02.2022 17:00:00], [13.01.2022 9:00:00; 18.02.2022 17:00:00].

Второй аргумент задаёт интервал [06.02.2022 9:00:00; 11.02.2022 17:00:00], который будет исключён из вышеуказанного набора интервалов. Таким образом, в результате операции, на временной диаграмме будут отображаться элементы с интервалами [26.01.2022 9:00:00; 05.02.2022 17:00:00], [02.02.2022 9:00:00; 6.02.2022 9:00:00), [13.01.2022 9:00:00; 18.02.2022 17:00:00]. При этом, точка конца не будет включена в интервал [02.02.2022 9:00:00; 6.02.2022 9:00:00), что обозначается круглой скобкой.

Объединить интервалы. Объединяет заданные в значении аргумента интервалы, которые имеют общие точки.

В приведённом примере, аргумент задаёт параллельное отображение элементов с интервалами [26.01.2022 9:00:00; 05.02.2022 17:00:00], [02.02.2022 9:00:00; 10.02.2022 17:00:00], [13.01.2022 9:00:00; 18.02.2022 17:00:00].

Первый и второй интервалы имеют общие точки [02.02.2022 9:00:00; 05.02.2022 17:00:00] и могут быть объединены. Таким образом, в результате операции, на временной диаграмме будут отображаться элементы с интервалами [26.01.2022 9:00:00; 10.02.2022 17:00:00], [13.01.2022 9:00:00; 18.02.2022 17:00:00].

Отбор подинтервалов. Отбирает из интервалов второго аргумента те, что являются подинтервалами для интервалов первого аргумента.

В приведённом примере, первый аргумент задаёт параллельное отображение элементов с интервалами [26.01.2022 9:00:00; 05.02.2022 17:00:00], [06.02.2022 9:00:00; 10.02.2022 17:00:00], [13.01.2022 9:00:00; 18.02.2022 17:00:00].

Второй аргумент задаёт параллельное отображение элементов с интервалами [29.01.2022 9:00:00; 04.02.2022 17:00:00], [04.02.2022 9:00:00; 12.02.2022 17:00:00].

В результате операции, на временной диаграмме будет отображаться элемент с интервалом [29.01.2022 9:00:00; 04.02.2022 17:00:00], так как он полностью входит в интервал [26.01.2022 9:00:00; 05.02.2022 17:00:00] и, соответственно, является его подинтервалом.

Пересечение интервалов. Вычисляет точки пересечения интервалов первого и второго аргументов. Интервалы каждого аргумента, имеющие общие точки, предварительно будут объединены.

 

В приведённом примере, первый аргумент задаёт параллельное отображение элементов с интервалами [26.01.2022 9:00:00; 05.02.2022 17:00:00], [06.02.2022 9:00:00; 10.02.2022 17:00:00], [13.01.2022 9:00:00; 18.02.2022 17:00:00].

Второй аргумент задаёт параллельное отображение элементов с интервалами [29.01.2022 9:00:00; 04.02.2022 17:00:00], [04.02.2022 9:00:00; 12.02.2022 17:00:00].

Таким образом, в результате операции вычисления точек пересечения интервалов первого и второго аргументов, на временной диаграмме будут отображаться элементы с интервалами [29.01.2022 9:00:00; 05.02.2022 17:00:00], [06.02.2022 9:00:00; 10.02.2022 17:00:00].

Разрезка интервала. Разрезает интервал, заданный первым аргументом на интервалы, размер которых задан вторым аргументом. Третий аргумент указывает границу интервала, с которой следует начинать разрезку (с начала или с конца).

В приведённом примере, первый аргумент задаёт отображение элемента с интервалом [01.02.2022 0:00:00; 12.02.2022 23:59:59].

С учётом длины интервала, равной 12 дней, и размера разрезки, составляющим 2 дня, вышеуказанный элемент будет разрезан на 6 равных интервалов.

Все пересечения. Находит все пересечения интервалов, с учетом входящих интервалов. Принимает на вход кортежи, в которых первый элемент является интервалом, а остальные элементы – значениями с произвольными типами данных. Возвращает набор кортежей, каждый из которых состоит из двух элементов: интервала пересечений и массива исходных кортежей, попавших в интервал пересечений.

Оператор Создать кортеж описан в подпараграфе "Структуры данных".

В приведённом ниже примере, созданы интервалы [31.01.2022 0:00:00; 04.02.2022 23:59:59], [03.02.2022 0:00:00; 07.02.2022 23:59:59], [03.02.2022 0:00:00; 04.02.2022 23:59:59].

На вход оператора Все пересечения подаются кортежи, первым элементом которых являются вышеуказанные интервалы.

В результате операции будут получены следующие пересечения интервалов: [31.01.2022 0:00:00; 03.02.2022 0:00:00) – точка конца не включена в интервал, [03.02.2022 0:00:00; 04.02.2022 23:59:59], (04.02.2022 23:59:59; 07.02.2022 23:59:59] – точка начала не включена в интервал.