Supongo que podrías hacer un while whe incremente la fecha de a un día y verifique si es o no festivo o fin de semana
FechaNoEsFestivo(Fecha) tendrás que sacarlo de una lista según tu país, zona, etc.
Código Delphi
[-]
Fecha := Now;
DiasASumar=34;
while (DiasASumar>0) do
begin
IncDay(Fecha,1);
if ((DayOfTheWeek(Fecha) > 1) and (DayOfTheWeek(Fecha) < 5)) then
begin
if (FechaNoEsFestivo(Fecha)) then
Dec(DiasASumar);
end;
end