Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Calendar - ¿31 de Junio?
Enviado por Langas el día 6 de junio de 2008
Buenas a todos. he hecho un programita tonto en un rato de aburrimiento para saber el día que cumpliré x días y me encontrado algo muy, pero que muy inesperado. Obtengo una fecha de ¡31 de Junio! Día que, como es obvio, no existe, pero la clase Calendar parece pensar que sí.
Aquí os dejo la parte relevante del código:
long numerodemilisegundosenundia = 24*60*60*1000;
Calendar c = Calendar.getInstance();
c.set(2008,6,6);
Date d1 = c.getTime();
c.set(1981,4,6);
Date d2 = c.getTime();
Date d3 = new Date(d2.getTime() + numerodemilisegundosenundia*9948);
long dif2 = (d3.getTime() - d1.getTime())/numerodemilisegundosenundia;
System.out.println("días que faltan hasta que cumplas 9948: " + dif2);
c.setTime(d3);
int ano = c.get(Calendar.YEAR);
int mes = c.get(Calendar.MONTH);
int dia = c.get(Calendar.DAY_OF_MONTH);
System.out.println("cumplirás 9948 el: " + dia + "/" + mes + "/" + ano);
Aparte de esto, Calendar está convencido de que hoy, día 6/6/2008, es domingo (cuando es jueves) ¿Alguien sabe de dónde provienen estos errores?