bueno, en un principio lo que yo pretendia era tener el DateChooser con todas las fechas deshabilitadas hasta el dia de hoy, no inclusive, al final lo he conseguido, no se si de la manera mas correcta, he cambiado un par de lineas, por ejemplo, ahora no sumo 1 al mes, porque es tonteria que le pases el mes 1/0/2006 y te devuelva el 31/12/2005 para luego volver a adaptarlo para el DateChooser, finalmente queda asi :
Código :
// funcion que calcula el dia de ayer
_global.Fayer = function(fecha):Date {
// separo en variables la fecha de hoy para trabajar con ella
dia = fecha.getDate();
mes = fecha.getMonth();
ano = fecha.getFullYear();
// siempre que sea dia 1, pasamos al mes anterior
if (dia == 1) {
switch (mes) {
// si es 1 de enero, pasamos al año anterior, asigno mes 13
// porque al final del switch siempre restamos 1 al mes
case 1 :
dia = 31;
mes = 13;
ano--;
break;
// los meses anteriores a estos tienen 31 dias
case 2 :
case 4 :
case 6 :
case 8 :
case 9 :
case 11 :
dia = 31;
break;
// los meses anteriores a estos tienen 30 dias
case 5 :
case 7 :
case 10 :
case 12 :
dia = 30;
break;
// si es marzo, calculo el ultimo dia de febrero
case 3 :
// comprueba si es bisiesto
if ((ano%4 == 0) && ((ano%100 != 0) || (ano%400 == 0))) {
dia = 29;
} else {
dia = 28;
}
break;
}
// siempre que sea el primer dia del mes, pasamos al mes anterior
mes--;
} else {
// si no es dia 1, simplemente restamos uno al dia y dejamos el resto igual
dia--;
}
// creamos el objeto date que retorna la funcion
ayer = new Date(ano, mes, dia);
return ayer;
};
luego en el codigo para el calendario DateChooser :
Código :
// creo el Date con la fecha de ayer
var ayer:Date = Fayer(new Date());
// deshabilito hasta el dia de ayer
calendario.disabledRanges = [{rangeStart: new Date(1990, 7, 1),rangeEnd: ayer}];
si alguien encuentra alguna mejora ... siempre es bien recibida, pero de momento me funciona.