Calcular edad de una persona en java

Método para calcular la edad de una persona. Espero que os sirva.

public static String getEdad(Date fechaNacimiento) {
		if (fechaNacimiento != null) {
			SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
			StringBuilder result = new StringBuilder();
			if (fechaNacimiento != null) {
				result.append(sdf.format(fechaNacimiento));
				result.append(" (");
				Calendar c = new GregorianCalendar();
				c.setTime(fechaNacimiento);
				result.append(calcularEdad(c));
				result.append(" años)");
			}
			return result.toString();
		}
		return "";
	}
	
private static int calcularEdad(Calendar fechaNac) {
		Calendar today = Calendar.getInstance();
		int diffYear = today.get(Calendar.YEAR) - fechaNac.get(Calendar.YEAR);
		int diffMonth = today.get(Calendar.MONTH) - fechaNac.get(Calendar.MONTH);
		int diffDay = today.get(Calendar.DAY_OF_MONTH) - fechaNac.get(Calendar.DAY_OF_MONTH);
		// Si está en ese año pero todavía no los ha cumplido
		if (diffMonth < 0 || (diffMonth == 0 && diffDay < 0)) {
			diffYear = diffYear - 1; // no aparecían los dos guiones del
										// postincremento 😐
		}
		return diffYear;
}

 

Esta entrada fue publicada en JAVA. Guarda el enlace permanente.

3 respuestas a Calcular edad de una persona en java

  1. roxana dijo:

    me gustaria saber como calcular o saber la fecha de nacimiento pero con la fecha actual : entonces la respuesta sea dia mes año
    ejemplo logica
    06/05/2015
    06/08/2015
    y como respuesta en el sistema debe salir:en años… meses…. dias…
    ayudenme

    • Diana dijo:

      aqui un codigo que te puede ayudar. 😉

      import java.io.BufferedReader;
      import java.util.*;
      import java.io.*;

      @SuppressWarnings(“unused”)
      public class fecha {

      public static void main(String args[]) throws IOException {
      BufferedReader bufEntrada = new BufferedReader(new InputStreamReader(System.in));
      double ano;
      double anoactual;
      double anofinal;
      double año;
      double añoactual;
      double añofinal;
      double dia;
      double diaactual;
      double diafinal;
      double dias;
      int mes;
      double mesactual;
      double meses;
      double mesfinal;
      diaactual = 10;
      mesactual = 3;
      anoactual = 2017;
      anofinal = 0;
      diafinal = 0;
      meses = 12;
      mesfinal = 0;
      System.out.println(“digite su fecha de nacimiento(dia,mes,año)01/3/2010”);
      dia = Double.parseDouble(bufEntrada.readLine());
      mes = Integer.parseInt(bufEntrada.readLine());
      ano = Double.parseDouble(bufEntrada.readLine());
      if (mes<=mesactual && dia<diaactual) {
      anofinal = (anoactual-ano);
      }
      if (diamesactual) {
      anofinal = (anoactual-ano)-1;
      } else {
      if (mes=diaactual) {
      anofinal = (anoactual-ano);
      }
      }
      if (mesactual=mesactual && dia>=diaactual) {
      anofinal = anoactual-ano;
      }
      if (mes>mesactual && dia>diaactual) {
      anofinal = (anoactual-ano)-1;
      }
      if (mes>=1 && mesmeses && mes<1) {
      System.out.println("esta fuera del rango de los meses");
      } else {
      if (mes=1) {
      if (mes>mesactual) {
      mesfinal = (meses+mesactual)-mes;
      }
      if (mesmeses && mes<1) {
      System.out.println("esta fuera del rango de los meses");
      } else {
      if (mes=1) {
      mesfinal = (meses+mesactual)-mes;
      }
      if (mesmeses && mes<1) {
      System.out.println("esta fuera del rango de los meses");
      } else {
      if (mes=1) {
      mesfinal = (meses+mesactual)-mes;
      }
      if (mesmeses && mes<1) {
      System.out.println("esta fuera del rango de los meses");
      } else {
      if (mes=1) {
      mesfinal = (meses+mesactual)-mes;
      }
      if (mesmeses && mes<1) {
      System.out.println("esta fuera del rango de los meses");
      } else {
      if (mes=1) {
      mesfinal = (meses+mesactual)-mes;
      }
      if (mesmeses && mes<1) {
      System.out.println("esta fuera del rango de los meses");
      } else {
      if (mes=1) {
      mesfinal = (meses+mesactual)-mes;
      }
      if (mesmeses && mes<1) {
      System.out.println("esta fuera del rango de los meses");
      } else {
      if (mes=1) {
      mesfinal = (meses+mesactual)-mes;
      }
      if (mesmeses && mes<1) {
      System.out.println("esta fuera del rango de los meses");
      } else {
      if (mes=1) {
      mesfinal = (meses+mesactual)-mes;
      }
      if (mesmeses && mes<1) {
      System.out.println("esta fuera del rango de los meses");
      } else {
      if (mes=1) {
      mesfinal = (meses+mesactual)-mes;
      }
      if (mesmeses && mes<1) {
      System.out.println("esta fuera del rango de los meses");
      } else {
      if (mes=1) {
      mesfinal = (meses-mesactual)-mes;
      }
      if (mesmeses && mes<1) {
      System.out.println("esta fuera del rango de los meses");
      } else {
      if (mes=1) {
      mesfinal = (meses-mesactual)-mes;
      }
      if (mesmeses && mes<1) {
      System.out.println("esta fuera del rango de los meses");
      } else {
      if (mes=1) {
      mesfinal = (meses+mesactual)-mes;
      }
      if (mes<mesactual) {
      mesfinal = mesactual-mes;
      }
      }
      break;
      }
      } else {
      System.out.println("el numero del mes no coincide");
      }
      System.out.println("usted tiene "+anofinal+" años, "+mesfinal+" meses y "+diafinal+" dias");
      }

      }

  2. Diana dijo:

    aqui 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;
    import java.util.GregorianCalendar;
    public class cal {

    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;

    }

    public static void main(String[] args)
    {
    {
    System.out.println(calcularEdad(new GregorianCalendar(1995,11,22)));
    }
    }}

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *