Ver Mensaje Individual
  #9 (permalink)  
Antiguo 26/10/2005, 06:12
Avatar de zacktagnan
zacktagnan
 
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 1 mes
Puntos: 3
Orden de los días de la semana - 10ª parte - Fin

Estando en el código de 'prueba_Calendar_Fin.asp', en lo referente a la CABECERA de la SEMANA solamente habría que cambiar el orden de una de las líneas, pasando la referente al 'DOM' a la última posición.

El problema está a la hora de los números del mes, después de CABECERA DE LA SEMANA.

Se recogen una serie de valores que se meten en variables (Fecha, Número de Día de la Semana, PrimerDíaDelaSemana, ÚltimoDía)

A partir de ahí, se construyen las semanas del mes:
primero los espacios de la primera semana, luego el resto de la semana y después el resto de las otras semanas.

Para las dos primeras cosas, está esto:
================================================== =======

vCode = vCode + "<tr>";
for (i=0; i<vFirstDay; i++) {
vCode = vCode + "<td width=\"14%\" style=\"font-family:" + fontface + ";" + this.write_weekend_string(i) + "\"> </td>";
}

// Resto de la primera semana
for (j=vFirstDay; j<7; j++) {
mesecito=this.gMonth+1;
anyto=this.gYear;
p=p_item;
vCode = vCode + "<td width=\"14%\" style=\"font-family:" + fontface + ";" + this.write_weekend_string(j) + "\">" +
"<a href='javascript:oculCalen(" + vDay + "," + mesecito + "," + anyto + ",\"" + p + "\");' " +
"onmouseover=\"window.status='Cambiar la fecha a: " + this.format_data(vDay) + "'; return true;\" " +
"onmouseout=\"window.status=''; return true;\" " +
"onclick=\"ggPosX=50;ggPosY=50;nd();nd();\">" +
this.format_day(vDay) +
"</a>" +
"</td>";
vDay=vDay + 1;
}
vCode = vCode + "</tr>";

================================================== =======


Yo he hecho este cambio:
================================================== =======

vCode = vCode + "<tr>";
for (i=0; i<vFirstDay-1; i++) {
vCode = vCode + "<td width=\"14%\" style=\"font-family:" + fontface + ";" + this.write_weekend_string(i) + "\"> </td>";
}

// Resto de la primera semana
for (j=vFirstDay-1; j<7; j++) {
mesecito=this.gMonth+1;
anyto=this.gYear;
p=p_item;
vCode = vCode + "<td width=\"14%\" style=\"font-family:" + fontface + ";" + this.write_weekend_string(j) + "\">" +
"<a href='javascript:oculCalen(" + vDay + "," + mesecito + "," + anyto + ",\"" + p + "\");' " +
"onmouseover=\"window.status='Cambiar la fecha a: " + this.format_data(vDay) + "'; return true;\" " +
"onmouseout=\"window.status=''; return true;\" " +
"onclick=\"ggPosX=50;ggPosY=50;nd();nd();\">" +
this.format_day(vDay) +
"</a>" +
"</td>";
vDay=vDay + 1;
}
vCode = vCode + "</tr>";

================================================== =======


Y en principio este cambio da la sensación que funciona bien hasta que pasas a un mes cuya primera semana empieza en DOMINGO, es decir que su primera semana sólo tiene un día.
Con los cambios que hago, no pone el 1 como Domingo, sino que lo pone en el lugar del Lunes de la segunda semana la cuál resulta con dos Domingos (es decir que esta semana queda con 8 días). El resto de la semana queda bien.

Ya está todo explicado.

¿Alguien que todavía siga en el mensaje sabría como corregir esto para que todos los meses se construyeran bien, empezando por el LUNES?

Gracias por la paciencia de llegar hasta aquí, la atención prestada y la posible y deseada ayuda.

Saludos,

zacktagnan.
================================================== =======