Hola a todos:
Tengo el siguiente código:
GregorianCalendar gc1=new GregorianCalendar(1982,05,31);
GregorianCalendar gc2=new GregorianCalendar(1989,03,26);
Date fec1=gc1.getTime();
Date fec2=gc2.getTime();
long tiempo;
if (fec1.compareTo(fec2)>0) {
tiempo=fec1.getTime()-fec2.getTime();
}
else {
tiempo=fec2.getTime()-fec1.getTime();
}
long milisegundos=tiempo;
long segundos=milisegundos/1000;
long horas=segundos/3600;
long dias=horas/24;
int meses=(int)dias/30;
int annos=(int)dias/365;
System.out.print("Entre una fecha y otra hay: "+annos+" años, ");
long resto=dias%365;
if (resto!=0) {
meses=(int)resto/30;
System.out.print(meses+" meses, ");
dias=resto%30;
if (resto!=0) {
System.out.print(dias+" días");
}
}
Me funciona perfectamente. Pero me ha dado cuenta que no es exacto, porque no todos los meses tienen 30 días ni tampoco todos los años tienen 365 días por lo que los resultados finales son erróneos.
¿Existe alguna manera de poder calcular el tiempo justo transcurrido entre una fecha y otra?
Gracias