Где-то это я уже видел 
 (И там утром у внутреннего цикла Holiday проверялся на False, а не на True.)
Дан код, в котором не синтаксических ошибок.
Есть, и много. Параметры функций должны отделятся запятой, а не точкой с запятой, в конце внешнего while должна быть точка с запятой, не говорю уже о том, что функция inc пишется через английскую букву «си», а не кириллическую «эс» 

Мой вариант улучшений, которые можно сделать, не зная остальной программы:
- Код: Выделить всё
 var
  ...
begin
  ...
  Result:= Date;
  K:= Abs(Number);
  // Если дата не задана или K=0 – прервать вычисления
  if (Date = '') or (K = 0) then
    Exit();
  // Определить знак разницы
  if Number > 0 then Sign:= 1 else Sign:= -1;
  // Цикл по количеству дней
  Date2:= Date;
  // Увеличиваем дату, пока K не станет равным 0
  while K > 0 do begin
    Date2:= DateAdd('d'; Date2; Sign);
    Holiday:= DateIsHoliday(Date2);
    // Уменьшаем K в непраздничные дни
    dec(K, Ord(not Holiday));
  end;
  Result:= Date2;
end
P.S. Трэш какой-то. Gul ассоциируется с 
Гульмэном.