Blog Informáticos Murcia

Desde Murcia hacia el resto del mundo.

Blog Informáticos Murcia

Desde Murcia hacia el resto del mundo.

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;
}

 

3 comentarios en «Calcular edad de una persona en java»

  1. 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

    1. 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. 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 una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.