Creo que así es más facil
Código PHP:
$fechaCurso = '12-03-2009'; //fecha de inicio del curso
$diasCurso = array('2','4'); //Martes y Jueves
$hoy = '16-06-2009'; //fecha ficticia de hoy
echo calculaDiasCursos($hoy,$fechaCurso,$diasCurso);
function calculaDiasCursos($hoy,$fechaCurso,$diasCurso)
{
//Pasamos las fechas a timestamp de Unix.
$hoy = explode('-', $hoy);
$fecha = explode('-', $fechaCurso);
$hoy = mktime(0, 0, 0, $hoy[1], $hoy[0], $hoy[2]);
$fecha = mktime(0, 0, 0, $fecha[1], $fecha[0], $fecha[2]);
//Extraemos las semanas completas que hay entre las 2 fechas
$diff = $hoy-$fecha;
$dias_de_diferencia = floor($diff/(24*3600));
$semanas_de_diferencia = floor($dias_de_diferencia/7);
//Contamos los días de cursos en esas semanas completas
$dias = $semanas_de_direfrencia *sizeof($diasCurso);
//Ahora contamos la semana incompleta
$diasSemana = $dias_de_diferencia%7;
if($diasSemana > 0)
{
foreach($diasCurso as $d)
{
//si el actual es mayor que el día del curso sumamos uno, sino los dias del curso son mayores que el dia actual. Salimos del bucle
if($diasSemanas > $d) $dias++;
else break;
}
}
return $dias;
}
Lo unico que hacemos es contar las semanas que hay entre las 2 fechas. y multiplicarlo por los días de curso que hay a la semana. Luego cogemos la última semana incompleta, si existe, y vamos contando día a día.