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(); }