Ok, spłodziłem taki kodzik
<?php
function workDaysNextDate($date1,$workDays) {
$workDays = (int)$workDays;
if ($workDays <= 0)
return null;
$date1=strtotime('-1 day',strtotime($date1));
$lastYear = null;
$hol=array('01-01','05-01','05-03','08-15','11-01','11-11','12-25','12-26');
$i = 0;
while ($i<=$workDays) {
$date1=strtotime('+1 day',$date1);
$year = date('Y', $date1);
if ($year !== $lastYear){
$lastYear = $year;
$easter = date('m-d', easter_date($year));
$date = strtotime($year . '-' . $easter);
$easterSec = date('m-d', strtotime('+1 day', $date));
$cc = date('m-d', strtotime('+60 days', $date));
$hol[8] = $easter;
$hol[9] = $easterSec;
$hol[10] = $cc;
}
$weekDay=date('w',$date1);
if (!($weekDay==0 || $weekDay==6 || in_array(date('m-d',$date1),$hol)))
$i++;
}
return date('Y-m-d',$date1);
}
?>
Za bardzo nie testowane. Potestuj sam i daj znać.
Przykłady użycia:
<?php
echo workDaysNextDate('2010-09-04',8); //wyświetli 2010-09-16
echo workDaysNextDate('2010-10-01',2); //wyświetli 2010-10-05
?>