Peter » 22 апр 2015, 13:45
Я поначалу подумал, что это недоработка авторов, но потом понял, что лучше сделать нельзя.
Чтобы пользователи не удивлялись, я бы добавил памятку, типа такой.
Вам требуется рассчитать дату начала проекта, если задана конечная дата.
Вы рассчитали проект назад, получили дату начала проекта, затем рассчитали проект вперед и дата окончания проекта уменьшилась. Вам повезло. Просто увеличьте начальную дату и подгоните конечную дату к нужной. Полагаю, для этого потребуется 1-3 итерации, не больше.
Если после расчета проекта вперед от полученной начальной даты конечная дата увеличилась, то есть два пути. Первый: смириться с менее эффективным вариантом расписания, уменьшить начальную дату и подогнать конечную к нужной. Второй (для маньяков): расставить приоритеты операций в соответствии с началом операций при расчете назад (раньше начало - больше приоритет). Затем рассчитать проект вперед. Это трудоемко, и выставленные приоритеты в дальнейшем все равно придется очистить, т.к. они могут привести к неоптимальному расчету.