El problema es que no me añade una linea nueva cada semana y me salen los dias del mes en una sola. En principio debería funcionar porque he metido un contador que cuando es divisible entre 7 me añade una nueva linea. Pero no funciona eso, y no se porque.
Os dejo el código:
Código Javascript:
Ver original
function calendario() { var fechaActual = new Date(); var anoActual = fechaActual.getFullYear(); // Año actual meses = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre']; if ((anoActual%4==0) && ((anoActual%100!= 0) || (anoActual%400==0))) { // Si es bisiesto o no diasPorMes = ['31','29','31','30','31','30','31','31','30','31','30','31']; } else { diasPorMes = ['31','28','31','30','31','30','31','31','30','31','30','31']; } diasSemana = ['Domingo', 'Lunes','Martes','Miercoles','Jueves','Viernes','Sabado']; $("#contenedor").append("<div id='calendario'></div>"); for(var i=0;i<meses.length;i++) { // Muestro los 12 meses var contadorMeses = 1; var contador=0; // Contador que rompe la semana cada 7 dias $("#calendario").append("<table id='"+meses[i]+"'>"); $("#"+meses[i]).append("<tr><td colspan='7'>"+meses[i]+"</td></tr>"); $("#"+meses[i]).append("<tr><td>D</td><td>L</td><td>M</td><td>Mi</td><td>J</td><td>V</td><td>S</td></tr>"); $("#"+meses[i]).append("<tr>"); // Nueva linea por semana fecha = new Date(contadorMeses+"/1/"+anoActual); primerDia = new Date(fecha.getFullYear(), fecha.getMonth(), 1).getDay(); for(var j=0;j<primerDia;j++) { // Espacios en blanco antes del primer dia $("#"+meses[i]).append("<td style='border:1px solid #000;'></td>"); contador++; } for(var j=1;j<=diasPorMes[i];j++) { if(contador%7==0) { // Rotura de semana cada 7 dias $("#"+meses[i]).append("</tr><tr>"); } $("#"+meses[i]).append("<td style='border:1px solid #000;'>"+j+"</td>"); contador++; } $("#"+meses[i]).append("</tr>"); $("#"+meses[i]).append("</table>"); contadorMeses++; } }
De hecho, si pongo un alert cuando el contador es divisible entre 7 me bien, pero la nueva linea de la tabla no aparece.