fbpx

Calcular la EDAD en JAVA

En este rápido tutorial, veremos cómo calcular la edad utilizando JAVA 8, JAVA 7 y las bibliotecas Joda-Time.

En todos los casos, tomaremos la fecha de nacimiento y la fecha actual como entrada y devolveremos la edad calculada en años.

Usando JAVA 8

Java 8 introdujo una nueva API Fecha-Hora para trabajar con fechas y horas, basada en gran medida en la biblioteca Joda-Time.

En Java 8, podemos utilizar java.time.LocalDate para nuestra fecha de nacimiento y la fecha actual, y luego usar Period para calcular su diferencia en años:

public int calcularEdad(LocalDate fechaDeNacimiento, LocalDate fecha) {
    return Period.between(fechaDeNacimiento, fecha).getYears();
}

Usando Joda-Time

Si Java 8 no es una opción, todavía podemos obtener el mismo tipo de resultado de Joda-Time, un estándar de facto para las operaciones de fecha-hora en el mundo pre-Java 8.

public int calcularEdad(org.joda.time.LocalDate fechaDeNacimiento, org.joda.time.LocalDate fecha) {
    Years edad = Years.yearsBetween(fechaDeNacimiento, fecha);
    return edad.getYears();   
}

Usando JAVA 7

A falta de una API específica en Java 7, tenemos que arreglárnoslas por nuestra cuenta, por lo que existen varios enfoques.

Por ejemplo, podemos utilizar java.util.Date:

public int calcularEdad(Date fechaDeNacimiento, Date fecha) {
    DateFormat formatter = new SimpleDateFormat("yyyyMMdd");                           
    int d1 = Integer.parseInt(formatter.format(fechaDeNacimiento));                            
    int d2 = Integer.parseInt(formatter.format(fecha));                          
    int edad= (d2 - d1) / 10000;                                                       
    return edad;                                                                        
}

Aquí, convertimos los objetos fechaDeNacimiento y fecha dados en enteros y encontramos la diferencia entre ellos, y mientras no sigamos en Java 7 dentro de 8000 años, este enfoque debería funcionar hasta entonces.