Функция изменения времени с учетом рабочих часов

Функция изменяет время (часы) от заданной даты и саму дату, если количество прибавляемых часов более 8 (напомню, подсчет осуществляется только в рабочих часах). Первоначально задается два параметра: Дата, требующая изменения и число часов, на которое требуется изменить время.