Entiendo.
Bueno el código que te paso tiene corregido los problemas que no cerrás la etiquetas y le agregué lo del inicializamiento de j (el cual
si estaba iniciado en 0 al comienzo :P ).
Código Javascript
:
Ver originalvar diamesact;
var diasemana;
var mes;
var ano; //año
var diasmes; //dias de los meses
var x;
var y;
var diasemanact;
var i;
var j = 0;
var z = 0;
var columna;
meses = new Array();
meses[0] = "Enero";
meses[1] = "Febrero";
meses[2] = "Marzo";
meses[3] = "Abril";
meses[4] = "Mayo";
meses[5] = "Junio";
meses[6] = "Julio";
meses[7] = "Agosto";
meses[8] = "Septiembre";
meses[9] = "Octubre";
meses[10] = "Noviembre";
meses[11] = "Diciembre";
dias = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
cita = new Array(null, null, null, null, null, null, null)
function mostrarcalendario() {
var fecha = new Date()
diamesact = fecha.getDate();
diasemana = fecha.getDay() - 1;
mes = fecha.getMonth() + 1;
ano = fecha.getYear();
if ((mes == 1) || (mes == 3) || (mes == 5) || (mes == 7) || (mes == 8) || (mes == 10) || (mes == 12)) {
diasmes = dias[0];
} else if (mes == 2) {
diasmes = dias[1];
} else {
diasmes = dias[3];
}
document.write("<center><table border=1>");
document.write("<tr>");
document.write("<th bgcolor='aliceblue'>" + meses[mes - 1] + " " + ano + "</th>") // -1 uno para que se ajuste al array y de el mes correcto
document.write("</tr>");
document.write("</table>");
document.write("<center><table border=1>");
document.write("<tr>");
document.write("<th>LU</th><th>MA</th><th>MI</th><th>JU</th><th>VI</th><th>SA</th><th>DO</th>");
document.write("</tr>");
// Calcula los espacios en blanco del mes actual - aqui no me hace el salto.
for (x = diamesact; x > 1; x--) {
if (diasemana == 0) {
diasemana = 7;
} else {
diasemana--;
}
}
document.write("<tr>");
for (i = 1; i < diasemana; i++) {
document.write("<th></th>");
}
var j=diasemana-1;//<--- inicializar j en algun valor, por si hay espacios en blanco
for (i = 1; i <= diasmes; i++) {
if (cita[i] != null) {
document.write("<th>" + '<a href="javascript:volverpadre()' + cita[i] + '">' + i + '</a>' + "</th>")
j++;
} else {
document.write("<th>" + i + "</th>");
j++;
}
if (j == 7) {
document.write("</tr>");
j = 0;
}
}
document.write("</table>");
}
De todas formas deberías revisar en varios meses a ver si algo sale mal... yo no estoy familiarizado con el código ni tengo muchas ganas tampoco de hacer todo eso :P