В настоящее время я работаю над веб-сайтом для отслеживания проектов. В нем можно создать соглашения об уровне обслуживания (SLA). Они настраиваются с днями недели, когда проект может быть обработан, а также время в каждый из этих дней. Например. в понедельник он может быть между 08:00 и 16:00, а затем в пятницу с 10:00 до 14:00. Они также настроены с временным временем в зависимости от приоритета. Например. проект, созданный с приоритетом «Низкий», имеет крайний срок в две недели, а проект с приоритетом «Высокий» имеет предельный срок в четыре часа.Расчет даты вокруг рабочих дней/часов?
Проблема, с которой я столкнулся, заключается в расчете предельного срока ВО ВРЕМЯ часов, описанных ранее. Скажем, я создаю проект в понедельник в 14:00 с приоритетом «Высокий». Это означает, что у меня есть четыре часа для этого проекта. Но из-за рабочего времени у меня есть два часа в понедельник (до 16:00), а затем еще два часа в пятницу. Это означает, что Крайний срок должен быть установлен в пятницу в 12:00.
Я потратил довольно много времени на это, и я могу найти немало примеров того, как много рабочих часов между датой окончания окончания начала. Я просто не могу понять, как преобразовать его в FINDING окончание datetime, учитывая начальное время и количество времени до крайнего срока.
На следующий день/timespans хранятся в базе данных SQL в формате:
день (. Eg 1 понедельник) StartHour EndHour
StartHour/EndHour сохраняются как DateTimes, но, конечно, только важная часть времени.
Как я понимаю, мне нужно как-то перебирать эти времена и делать некоторые вычисления в датах. Я просто не могу понять, какими должны быть эти вычисления, что лучший способ.
Я нашел this Question здесь, на сайте, как я писал это. Это то, что я хочу, и сейчас я играю с ним, но я все еще теряю то, как именно заставить его работать вокруг моих динамических рабочих дней/часов.