До смешного сложный расчет sla в рабочие дни / часы / минуты для выяснения

#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. Полностью за деньги. Большое спасибо.