Range[id="FV1", from=2024-01-01, to=2024-12-31]
Из этого списка мне нужно извлечь общие диапазоны. Применяются следующие правила:
- Все отдельные диапазоны должны быть действительными, чтобы быть общим диапазоном.
- Список может содержат диапазоны с повторяющимися идентификаторами, что представляет собой отдельный диапазон действия на той же временной шкале, что и идентификатор.
- Все изменения диапазона действия на одной временной шкале должны привести к созданию отдельного общего диапазона (если применяется правило 1). )

Пример 1. Ввод :
[Range[id="FV1", from=2024-01-01, to=2024-08-14],
Range[id="FV2", from=2024-04-01, to=2024-12-31],
Range[id="FV3", from=2024-03-05, to=2024-12-28]]
Вывод примера 1:
[Range[id="R1", from=2024-04-01, to=2024-08-14]]
Пример 2 ввода:
[Range[id="FV1", from=2024-01-01, to=2024-08-14],
Range[id="FV2", from=2024-02-01, to=2024-12-31],
Range[id="FV3", from=2024-01-04, to=2024-04-28],
Range[id="FV3", from=2024-04-28, to=2024-12-31]]
Вывод примера 2:
[Range[id="R1", from=2024-02-01, to=2024-04-28],
Range[id="R2", from=2024-04-28, to=2024-08-14]]
Пример 3 (как показано выше)
Ввод:
[Range[id="FV1", from=2024-10-01, to=2024-12-31],
Range[id="FV1", from=2024-12-31, to=2100-01-01],
Range[id="FV2", from=2024-09-03, to=2100-01-01],
Range[id="FV3", from=2024-08-01, to=2025-05-06],
Range[id="FV3", from=2025-05-06, to=2100-01-01]]
Пример 3 (как показано выше) Результат:
[Range[id="R1", from=2024-10-01, to=2024-12-31],
Range[id="R2", from=2024-12-31, to=2025-05-06],
Range[id="R3", from=2024-12-31, to=2100-01-01]]
Подробнее здесь: https://stackoverflow.com/questions/791 ... -of-ranges