Calcular la edad en Java

A continuación dejo una función para calcular la edad de una persona. Realmente puede servir para calcular la diferencia en años entre una fecha cualquiera y la actual.

import java.util.Calendar;

public static int calcularEdad(Calendar fechaNac) {

    Calendar fechaActual = Calendar.getInstance();

    // Cálculo de las diferencias.
    int anios = fechaActual.get(Calendar.YEAR) - fechaNac.get(Calendar.YEAR);
    int meses = fechaActual.get(Calendar.MONTH) - fechaNac.get(Calendar.MONTH);
    int dias = fechaActual.get(Calendar.DAY_OF_MONTH) - fechaNac.get(Calendar.DAY_OF_MONTH);

    // Hay que comprobar si el día de su cumpleaños es posterior
    // a la fecha actual, para restar 1 a la diferencia de años,
    // pues aún no ha sido su cumpleaños.

    if(meses < 0 // Aún no es el mes de su cumpleaños
       || (meses==0 && dias < 0)) { // o es el mes pero no ha llegado el día.

        anios--;
    }
    return anios;
}

Para probar esta función, le pasamos como parámetro un GregorianCalendar inicializado con una fecha, recordando que los meses están representados por una secuencia númerica donde el número 0 correspone a Enero y el 11 a Diciembre.

import java.util.GregorianCalendar;

public static void main(String[] args) {
    System.out.println(calcularEdad(new GregorianCalendar(1984,11,24)));
}
Anuncios
Esta entrada fue publicada en Uncategorized y etiquetada , , . Guarda el enlace permanente.

6 respuestas a Calcular la edad en Java

  1. Chopu dijo:

    Excelente código, muy intuitivo. Gracias y saludos.

    Me gusta

  2. samurai dijo:

    Exelente codigo, simple y efectivo, felicidadez!!

    Me gusta

  3. beto dijo:

    como lo pruebo

    Me gusta

    • mruiz dijo:

      Hola beto, el último trozo de código que hay es el método main de java y contiene una prueba de la función que hay mas arriba. Solo tendrás que copiarlo todo a una clase java y ejecutarla ya se por línea de comandos o con tu IDE preferido. Un saludo

      Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s