Где-то это я уже видел 
(И там утром у внутреннего цикла 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 ассоциируется с
Гульмэном.