yo guardaria en una tabla esos dias que no son laborables y haria un simple for donde cuento desde la fecha deinicio de vacaciones hasta finalizar, salteandome los dias que no estan disponibles:
   
Código PHP:
Ver original- <? 
- $fechaInicioVacaciones = '2013-01-01'; //formtao sql yyyy-mm-dd 
- $cantidadDiasVacaciones = 14; 
- $cuanteDias = 0; 
- $fechaSalida = ""; 
- while(true){ 
-      
-     $fechaSalida =  date_add($fecha, date_interval_create_from_date_string('1 days')); 
-     if( is_dia_valido($fechaIniciovacaciones) ){ 
-         $cuanteDias ++; 
-     } 
-     if($cuanteDias <= $cantidadDiasVacaciones){ 
-         break; 
-     } 
- } 
- // FECHA DE FIN DE VACACIONES 
- //SOLO DEBERIAS CREAR UNA FUCION  QUE VALIDE LA FECHA VALIDA: 
-   
- funciton is_dia_valido($fecha){ 
- //compara la fecha $fecha con la del listado 
-   
- /* 
- EL ARRAY DE FECHAS DEBE TENER FORMATO DD-MM 
- */ 
- $fecha = $fecha("-", $fecha); 
- $fecha = $fecha[2]."-".$fecha[1]; // deberia devolver DIA-MES  
-   
-     return true; 
- else 
-     return false 
-   
- //return true o false 
- } 
EL RESTO DE LAS FUNCIONES SON NATIVAS DE PHP, LAS PODES BUSCAR EN PHP.NET
?>