Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/09/2015, 04:50
monicapo
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 20 años, 7 meses
Puntos: 2
Nueva linea cada semana en un calendario

Tengo un problema con un calendario que estoy montando.
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
  1. function calendario() {
  2.     var fechaActual = new Date();
  3.     var anoActual = fechaActual.getFullYear(); // Año actual
  4.     meses = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
  5.     if ((anoActual%4==0) && ((anoActual%100!= 0) || (anoActual%400==0))) { // Si es bisiesto o no
  6.         diasPorMes = ['31','29','31','30','31','30','31','31','30','31','30','31'];
  7.     } else {
  8.         diasPorMes = ['31','28','31','30','31','30','31','31','30','31','30','31'];
  9.     }
  10.     diasSemana = ['Domingo', 'Lunes','Martes','Miercoles','Jueves','Viernes','Sabado'];
  11.     $("#contenedor").append("<div id='calendario'></div>");
  12.     for(var i=0;i<meses.length;i++) { // Muestro los 12 meses
  13.         var contadorMeses = 1;
  14.         var contador=0; // Contador que rompe la semana cada 7 dias
  15.         $("#calendario").append("<table id='"+meses[i]+"'>");
  16.         $("#"+meses[i]).append("<tr><td colspan='7'>"+meses[i]+"</td></tr>");
  17.         $("#"+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>");        
  18.         $("#"+meses[i]).append("<tr>"); // Nueva linea por semana
  19.         fecha = new Date(contadorMeses+"/1/"+anoActual);
  20.         primerDia = new Date(fecha.getFullYear(), fecha.getMonth(), 1).getDay();
  21.         for(var j=0;j<primerDia;j++) { // Espacios en blanco antes del primer dia
  22.             $("#"+meses[i]).append("<td style='border:1px solid #000;'></td>");
  23.             contador++;
  24.         }
  25.         for(var j=1;j<=diasPorMes[i];j++) {
  26.             if(contador%7==0) { // Rotura de semana cada 7 dias
  27.                 $("#"+meses[i]).append("</tr><tr>");
  28.             }
  29.             $("#"+meses[i]).append("<td style='border:1px solid #000;'>"+j+"</td>");           
  30.             contador++;
  31.         }
  32.         $("#"+meses[i]).append("</tr>");
  33.         $("#"+meses[i]).append("</table>");
  34.         contadorMeses++;
  35.     }
  36. }

De hecho, si pongo un alert cuando el contador es divisible entre 7 me bien, pero la nueva linea de la tabla no aparece.

Última edición por monicapo; 22/09/2015 a las 04:57