Ver Mensaje Individual
  #8 (permalink)  
Antiguo 02/07/2008, 09:01
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 4 meses
Puntos: 45
Respuesta: Problemas con los años bisiestos en JavaScript

Buf, pues no sé qué decirte, he metido los mismos parámetros que el javascript en http://www.timeanddate.com/ por ejemplo y me salen también 25.011 días (enlace). No sé muy bien a qué se puede deber, teniendo en cuenta que el 2008 sí lo cuenta como bisiesto...

Vamos a hacer un programita que cuente los días uno a uno con la misma configuración:
Código PHP:
Date.prototype.sumaUnDia = function() {
    
this.setTimethis.getTime() + (24*60*60*1000) );
}

Date.prototype.esElMismoDia = function( otraFecha ) {
    return (
this.getDate()===otraFecha.getDate()) && 
        (
this.getMonth()===otraFecha.getMonth()) && 
        (
this.getFullYear()===otraFecha.getFullYear());
}

var 
fechaInicio = new Date(1940110);
var 
fechaFin = new Date();                        //hoy
fechaFin.setMonthfechaFin.getMonth()+);        // es hoy más un mes
document.write("Entre: <br/>"+fechaInicio+" y <br/>"+fechaFin+"<br/>");

// le voy a sumar un día a la fechaInicio hasta que sea el mismo día fechaInicio que fechaFin
var diasContados 0;
while( 
fechaInicio.esElMismoDiafechaFin ) === false ) {
    
fechaInicio.sumaUnDia();
    
diasContados++;
}
document.write("He contado "+diasContados+" días, y ahora las fechas son:<br/>"+fechaInicio+" y <br/>"+fechaFin ); 
Y la salida es:
Cita:
Entre:
Sat Feb 10 00:00:00 UTC+0100 1940 y
Sat Aug 2 16:46:06 UTC+0200 2008
He contado 25011 días, y ahora las fechas son:
Sat Aug 2 01:00:00 UTC+0200 2008 y
Sat Aug 2 16:46:06 UTC+0200 2008
Así que bueno, no tengo ni la más remota idea de por qué contando poco a poco sale bien y contando a lo bestia mal, voy a revisar un poco el script de cálculo, debe andar algo mal por ahí, es lo más lógico.

A ver si lo sacamos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.