No estimado realmente en todo x año hay un día que tiene 53 y en un bis. hay 2*53
Es más 52*7=364
Por lo tanto hay que sumar un día de modo que:
52*7+1=365, eso significa que un día tiene que tener un día de más
Para un bis:
52*7+1+1=366, eso significa que por la intercalación de días hay 2 días que tienen 53
Edito: Optimizo mi código
Código PHP:
Ver originalfunction dayOfWeekOnYear($day,$year){
$md = array(31,28,31,30,31,30,31,31,30,31,30,31); //days to use if($year%4 == 0 && (!($year%100 == 0) || $year%400 == 0)){ $md[1]++; } //if leap year +1 to february
$c = 0; //counter
for($k=0;$k<sizeof($md);$k++){ //loop for months for($n=0;$n<$md[$k];$n++){ //loop for days
$c++; //count
}
}
}
return $c; //return
}
Saludos