#algorithm #datetime
#алгоритм #дата и время
Вопрос:
Хорошо, я ходил по кругу в течение последних 2 дней, пытаясь разобраться в этом.
Я работаю над системой, которая обрабатывает «обращения». У каждого случая есть тип, и с каждым типом связано соглашение об уровне обслуживания, которое может быть указано в днях, часах или минутах. В дополнение к этому существует административная функция, которая позволяет пользователю указывать время начала и окончания рабочего дня и какие дни недели являются рабочими. Я должен отметить, что рабочие часы одинаковы для каждого рабочего дня. Так, например, рабочее время может составлять с 9:00 до 13:30 в понедельник, среду и четверг. Я пока не собираюсь утруждать себя включением праздников в эту функцию…Это и так достаточно сложно!
Учитывая отработанные дни и часы и SLA, .. как я могу вычислить дату и время, когда обращение нарушает его SLA.
У меня такое ощущение, что, поскольку минимальное разрешение SLA задано в минутах, мне нужно сначала перевести все в минуты. Очевидно, что день / время создания обращения также должны быть приняты во внимание. Если честно, помимо этих двух крупиц мудрости, … я в замешательстве 🙂
Абсолютно любая помощь была бы чрезвычайно оценена по этому вопросу. Вероятно, также стоит упомянуть, что если есть библиотека для этого, я с удовольствием воспользуюсь ею и буду двигаться дальше. C # — мой предпочтительный язык, но любое решение было бы отличным
Заранее большое спасибо.
Комментарии:
1. Похоже, вы уже прошли 90% пути, понимая, что вам нужно просто привести все к согласованным единицам измерения. С какой конкретной проблемой вы все еще сталкиваетесь?
2. Немного сложно сформулировать проблему, но учтите возможность того, что они работают в течение одного часа в четверг. Срок действия SLA в 7 часов приведет к тому, что в будущем время завершения составит 7 недель. Проблема в том, что я не уверен, как определить количество нерабочего времени с учетом SLA и добавить, что с ним делать, когда оно у меня будет!
3. Поскольку вы говорите, что вас не беспокоят праздники (пока), справедливо ли будет сказать, что для данного SLA существует фиксированное количество рабочих минут в неделю? Если да, можете ли вы просто разделить время SLA на минуты в неделю, а затем рассортировать остаток?
Ответ №1:
Лично у меня был бы список дней недели и количество рабочих минут в каждый день. Перебирайте список, вычитая рабочие минуты из задачи, пока она не станет равной 0, при этом добавляя минуты, потраченные на целый день, к переменной «реальное время до завершения».
Если оставшиеся минуты задачи меньше, чем рабочие минуты дня, тогда добавьте их к переменной time to completion вместо этого.
Это говорит мне о том, сколько может быть минут между запуском задачи и завершением задачи, что можно сравнить с SLA типа.
Не уверен, что это лучший способ, но это начало 🙂 Надеюсь, это поможет
Комментарии:
1. Полностью за деньги. Большое спасибо.