Ejercicios fechas

 Mes:<input type="text" id="mes">
 Año:<input type="text" id="anyo">
 Festivos:<input type="text" id="festivos">
 <input type="button" onclick="calcular()" value="Calcular">
 <input type="button" onclick="total()" value="Total">
function calcular() {
//Obtener los valores de las cajas de texto
var mes = document.getElementById('mes').value;
var anyo = document.getElementById('anyo').value;

//Poner el resultado en el input festivos
document.getElementById('festivos').value = festivos(mes, anyo);

}

//Nos devuelve los años con más festivos
function maximoAnual(anyoDesde, anyoHasta) {
var anyo = [];
var maximo = 0;
for (var i = anyoDesde; i <= anyoHasta; i++) {
var t = total(i);
if (t === maximo) {
anyo.push(i);
}
if (t > maximo) {
anyo = [i];
maximo = t;
}
}
return [anyo, maximo];
}

//nos devuelve los meses con más festivos de un año
function mesesFestivos(anyo) {
var mes = [];
var maximo = 0;
for (var i = 1; i <= 12; i++) {
var t = festivos(i,anyo);
if (t === maximo) {
mes.push(i);
}
if (t > maximo) {
mes = [i];
maximo = t;
}
}
return [mes, maximo];
}
function total(anyo) {
var total = 0;
for (var i = 1; i <= 12; i++) {
total += festivos(i, anyo);
}
//Poner el resultado en el input festivos
return total;
}
function festivos(mes, anyo) {
var cont = 0;
var diasMes = daysInMonth(mes, anyo);
//Recorro el mes para buscar sábados y domingos
for (var i = 1; i <= diasMes; i++) {
var fecha = new Date(anyo, mes - 1, i);
//Si es sábado o domingo sumar uno al contador
if (fecha.getDay() === 6 || fecha.getDay() === 0) {
cont++;
}
}
return cont;
}

function daysInMonth(month, year) {
return new Date(year, month, 0).getDate();
}