Código PHP:
//$mes y $year son datos, de acuerdo a tu planteamiento
$fecha_ini=$year."-".$mes."-01";
$fecha_fin=$year."-".$mes."-".$date("t",strtotime($fecha_ini));
function dia_con_cero($dia){//función que retorna el dia en formato de doble dígito cuando sea necesario y recibe como parámetro el dia en formato de 2 dígitos
if($dia<10){
$dia="0".$dia;
}
return $dia;
}
function dia_sin_cero($dia){//función que retorna el dia en formato de un dígito cuando sea necesario y recibe como parámetro el dia en formato de 2 dígitos
$v=str_split($dia);
if($v[0]==0){
return $v[1];
}
else{
return $dia;
}
}
function compara_fechas($date1,$date2){//función para verificar si la fecha1 es mayor que la fecha2
$aux1=strtotime($date1);//convertimos la fecha a formato
$aux2=strtotime($date2);//convertimos la fecha a formato
$resp=0;
if($aux1>$aux2){//si la fecha1 es mayor que la fecha2
$resp=1;
}
else{
$resp=0;
}
return $resp;
}
function dia_siguiente($date){//funcion que dada una fecha en formato "yyyy-mm-dd" devuelve el dia siguiente de la fecha en formato "yyyy-mm-dd"
$aux=explode("-",$date);
$dia=dia_sin_cero($aux[2]);
$mes=dia_sin_cero($aux[1]);
if($dia==date("t",strtotime($date))){//si es el último día del mes
$day=1;
$day=dia_con_cero($day);
if($mes==12){//en caso que el mes sea diciembre
$mes=1;
$mes=dia_con_cero($mes);
$year=$aux[0]+1;
}
else{//en caso que el mes sea diferente a diciembre
$mes=$mes+1;
$mes=dia_con_cero($mes);
$year=$aux[0];
}
$fecha=$year."-".$mes."-".$day;
}
else{//en caso de ser cualquier dia diferente al último del mes
$day=$dia+1;
$day=dia_con_cero($day);
$fecha=$aux[0]."-".$aux[1]."-".$day;
}
return $fecha;
}
//las 4 funciones mencionadas serían necesarias para el recorrido de lo que se quiere preguntar, se pueden codificar en otro archivo por separado e incluirlo
//ahora si el ciclo para recorrer el rango de fecha
$band=0;
$cont=0;
while($band==0){
//a continuacion se realiza todo el proceso que se requiera durante los dias del mes, por los momento solo me remito a la pregunta puntual
if(date("N",strtotime($fecha_ini))<6){
$cont++;
}
$fecha_ini=dia_siguiente($fecha_ini);//aumentamos la fecha en un dia
$band=compara_fechas($fecha_ini,$fecha_fin);//preguntamos si ya pasamos el fin de mes o el final del rango de fecha
}
Espero que te ayude en algo, para hacerlo más completo supongo que incluirás la data de asistencia, la data de días feriados y ausencias justificadas.