socorro!num dias,meses o años entre dos fechas
Publicado por riveiras (33 intervenciones) el 30/09/2009 18:17:16
Hola necesito calcular la diferencia entre dos fechas, y que me devuelva el numero de dias de diferencia. También los meses de diferencia y los años de diferencia entre las dos fechas.
private void calcularDif(String fec1,String fec2){
SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
int dias,meses,anos=0;
try {
java.util.Date d1;
d1 = sdf.parse(fec1);
//fecha2
java.util.Date d2=sdf.parse(fec2);
System.out.println("fec1:"+fec1+",fec2:"+fec2);
long valor=0;
if(d1.getTime()>d2.getTime())
valor=d1.getTime() -d2.getTime();
else
valor=d2.getTime() -d1.getTime();
dias=(int) (valor/(1000*60*60*24));
meses=(int) (valor/(1000*60*60*24*30));
anos=(int) (valor/(1000*60*60*24*30*365));
System.out.println("dias:"+dias+",meses:"+meses+",anos:"+anos);
} catch (ParseException e) {
// TODO Bloque catch generado automáticamente
e.printStackTrace();
}
}
si llamo al método con los siguietnes valroes
this.calcularDif("01/01/2000","01/02/2000");
this.calcularDif("01/01/2000","01/01/2001");
this.calcularDif("01/01/2000","01/08/2001);
Los resultados que me devuelve son
CASO 1
dias:31,meses:1,anos:2
CASO 2
dias: 366,meses:18,anos:26
CASO 3
DIAS 577,meses:29,anos:42
podeis ayudarme a ver que hago mal????gracias
private void calcularDif(String fec1,String fec2){
SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
int dias,meses,anos=0;
try {
java.util.Date d1;
d1 = sdf.parse(fec1);
//fecha2
java.util.Date d2=sdf.parse(fec2);
System.out.println("fec1:"+fec1+",fec2:"+fec2);
long valor=0;
if(d1.getTime()>d2.getTime())
valor=d1.getTime() -d2.getTime();
else
valor=d2.getTime() -d1.getTime();
dias=(int) (valor/(1000*60*60*24));
meses=(int) (valor/(1000*60*60*24*30));
anos=(int) (valor/(1000*60*60*24*30*365));
System.out.println("dias:"+dias+",meses:"+meses+",anos:"+anos);
} catch (ParseException e) {
// TODO Bloque catch generado automáticamente
e.printStackTrace();
}
}
si llamo al método con los siguietnes valroes
this.calcularDif("01/01/2000","01/02/2000");
this.calcularDif("01/01/2000","01/01/2001");
this.calcularDif("01/01/2000","01/08/2001);
Los resultados que me devuelve son
CASO 1
dias:31,meses:1,anos:2
CASO 2
dias: 366,meses:18,anos:26
CASO 3
DIAS 577,meses:29,anos:42
podeis ayudarme a ver que hago mal????gracias
Valora esta pregunta
0