Срок ответа по SLA в рабочие часы
Задача по программированию с проверкой онлайн
- Сложность
- Сложная
- Языки
- Python
- JavaScript
- TypeScript
- Java
- Go
- Темы
- Даты и время
- Разбор и проверка данных
- Исключения
Служба поддержки обещает ответить на обращение за sla_minutes рабочих минут. Дан момент открытия opened ("YYYY-MM-DD HH:MM"), график недели hours — ровно 7 строк с понедельника по воскресенье — и список праздников holidays ("YYYY-MM-DD", в праздник служба закрыта весь день). Строка графика пустая (выходной) или содержит окна "HH:MM-HH:MM" через запятую, например "09:00-13:00,14:00-18:00"; окно открыто с начала включительно до конца не включая.
Верните срок — самый ранний момент, к которому от opened набралось ровно sla_minutes рабочих минут, в формате "YYYY-MM-DD HH:MM". Если отсчёт заканчивается ровно в конце окна, срок — этот конец (например "18:00"), а не начало следующего окна. При sla_minutes = 0 срок — сам opened. Календарь григорианский, часовых поясов нет; sla_minutes не больше 100000.
Сообщите об ошибке (бросьте исключение, в Go верните error), если sla_minutes < 0, строк графика не 7, окно записано не в формате, часы не от 00 до 23 или минуты не от 00 до 59, окно пустое или начинается раньше конца предыдущего окна того же дня, дата не в формате "YYYY-MM-DD" или не существует, opened не в формате, а также если sla_minutes > 0, а в графике нет ни одного окна.
Пример: "2024-03-08 16:30" (пятница), 240, будни "09:00-13:00,14:00-18:00", выходные "", [] → "2024-03-11 11:30".
Источник: задача CodeShare