Perl скрипт обработки времени
На входе 9 параметров:
1. Дата начала процесса dd/mm/yyyy,
2. Время начала процесса hh:mm:ss,
3. Длительность процесса в секундах (может быть больше 60),
4. Дата начала регулярного периода dd/mm/yyyy
Регулярный период - recurrence_event. Привязка к настоящему календарю.
5. Время начала регулярного периода hh:mm:ss
6. Дата окончания регулярного периода dd/mm/yyyy
7. Время окончания регулярного периода hh:mm:ss
8. Частота повторения MM:ww:dd:hh:mm:ss
9. Лимит длительности переcечения (TimeStore) hh:mm:ss
1. Рассчитать момент окончания процесса (дата и время)
2. Рассчитать разницу пересечения процесса с регулярным периодом. Если не пересекаются вернуть 0.
3. Исключить из пересечения процесса с периодом лимит длительности пересечения. Исключения производится от более раннего момента к более позднему.
3.1. Вернуть остаток лимита длительности пересечения (dd/mm/yyyy, hh:mm:ss), если нет вернуть 0.
3.2. Вернуть остаток пересечения (dd/mm/yyyy, hh:mm:ss), если нет вернуть 0.
3.3. Вернуть новый момент начала процесса (dd/mm/yyyy, hh:mm:ss), если нет вернуть 0.
3.4. Вернуть новый момент окончания процесса (dd/mm/yyyy, hh:mm:ss), если нет вернуть 0.
Использовать локальное московское время.
Предлагается использовать следующие модули
Time::Local
Date::Calc
Date::Manip
DateTime