PHP код:
<?
function redate($date) {
$date1=date('d.m.y',mktime(0,0,0,$date[1],$date[0],$date[2]));
return explode(".",$date1);
}
function den($date) {
return date('w',mktime(0,0,0,$date[1],$date[0],$date[2]));
}
function hol($date) {
$date[1]=intval($date[1]);$date[0]=intval($date[0]);
$holiday=Array(
1=>Array(1=>1,2=>1,7=>1),
2=>Array(23=>1),
3=>Array(8=>1),
5=>Array(1=>1,2=>1,9=>1),
6=>Array(12=>1),
11=>Array(7=>1),
12=>Array(12=>1)
);
if(isset($holiday[$date[1]][$date[0]])) return 1;
else return 0;
}
function plusdate($date,$plus) {
$date=explode(".",$date);
for($i=-1;$i<$plus;$i++) {
if(den($date)==0 or den($date)==6) $plus++;
if(hol($date)==1) $plus++;
$date[0]=$date[0]+1;
$date=redate($date);
}
$date[0]=$date[0]-1;
$date=redate($date);
echo $date[0].".".$date[1].".".$date[2];
}
echo plusdate("30.12.07",1);
?>