Java - Calcular dias entre fechas

   
Vista:

Calcular dias entre fechas

Publicado por Juan (11 intervenciones) el 10/08/2018 18:09:24
Buenas tardes, tengo una función para calcular la diferencia de años y meses entre fechas pero no se como hacer para calcular la diferencia entre días. Alguien me puede ayudar?

Gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static int calcularEdad(Date fechaNacimiento) {
 
    //INSTANCIA DEL CALENDARIO GREGORIANO
    Calendar fInicio = Calendar.getInstance();
    Calendar fFinal = Calendar.getInstance();
 
    //ESTABLECEMOS LA FECHA DEL CALENDARIO CON EL DATE GENERADO ANTERIORMENTE
    fInicio.setTime(fechaNacimiento);
    fFinal.setTime(new Date());
 
    int difA = fFinal.get(Calendar.YEAR) - fInicio.get(Calendar.YEAR);
    int difM = difA * 12 + fFinal.get(Calendar.MONTH) - fInicio.get(Calendar.MONTH);
    int difD = ?
 
    return difA;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Calcular dias entre fechas

Publicado por Yamil Bracho (2176 intervenciones) el 10/08/2018 18:14:31
public static long getDifferenceDays(Date d1, Date d2) {
long diff = d2.getTime() - d1.getTime();
return TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Calcular dias entre fechas

Publicado por Juan (11 intervenciones) el 10/08/2018 19:53:16
Gracias Yamil por tu respuesta. El caso es que quiero que en la misma función me devuelva tanto la diferencia de años(difA) como la diferencia de meses(difM) como la diferencia de días(difD). Esto lo haré de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static int calcularEdad(Date fechaNacimiento, int valor) {
 
    //INSTANCIA DEL CALENDARIO GREGORIANO
    Calendar fInicio = Calendar.getInstance();
    Calendar fFinal = Calendar.getInstance();
 
    //ESTABLECEMOS LA FECHA DEL CALENDARIO CON EL DATE GENERADO ANTERIORMENTE
    fInicio.setTime(fechaNacimiento);
    fFinal.setTime(new Date());
    int difA = 0;
    int difM = 0;
    int difD = 0;
    if (valor == 1) {
        difA = fFinal.get(Calendar.YEAR) - fInicio.get(Calendar.YEAR);
        return difA;
    } else if (valor == 2) {
        difM = difA * 12 + fFinal.get(Calendar.MONTH) - fInicio.get(Calendar.MONTH);
        return difM;
    } else{
        difD = ?;
        return difD;
    }
}

Como saca la diferencia entre días? (diff).

Muchas Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad