Смешно сложный расчет рабочих дней / часов / минут - PullRequest
4 голосов
/ 12 июня 2011

Хорошо, последние два дня я ходил кругами, пытаясь выяснить это.

Я работаю над системой, которая обрабатывает «дела».У каждого случая есть тип, а у каждого типа есть связанный SLA, который можно указать в днях, часах или минутах.В дополнение к этому есть административная функция, которая позволяет пользователю указать время начала и окончания рабочего дня, а также дни недели.Я должен отметить, что рабочее время одинаково для каждого рабочего дня.Например, рабочее время может быть с 9:00 до 13:30 в понедельник, среду и четверг.Я пока не буду беспокоиться о включении праздников в эту функцию ... Это достаточно сложно!

Учитывая дни и часы, которые отработаны, и SLA, .. как я могу это сделать?рассчитать дату и время, когда дело нарушает SLA.

У меня такое ощущение, что, поскольку минимальное разрешение SLA установлено в минутах, мне сначала нужно будет преобразовать все в минуты.Очевидно, что день / время создания дела также должны быть приняты во внимание.Кроме этих двух самородков мудрости, я буду честен, ... я колеблюсь: -)

Абсолютно любая помощь будет очень цениться в этом.Вероятно, также стоит упомянуть, что, если для этого есть библиотека, я с удовольствием ее использую и продолжаю.C # мой любимый язык, но любое решение было бы замечательно

Большое спасибо заранее.

1 Ответ

4 голосов
/ 12 июня 2011

Лично у меня будет список дней в неделе и количество рабочих минут в каждом дне.Просмотрите список, вычитая рабочие минуты из задачи, пока она не станет равной 0, при этом добавляя количество минут полного дня к переменной «реального времени до завершения».

Если оставшиеся минуты задачи меньше чемрабочие дни дня, а затем добавьте их в переменную времени до завершения.

Это говорит мне, как могут проходить минуты между началом и завершением задачи, которые можно сравнить с SLA типа.

Не уверенесли это лучший способ, но это начало :) Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...