Foros del Web » Programación para mayores de 30 ;) » Java »

al restar dos fechas no consigo la edad

Estas en el tema de al restar dos fechas no consigo la edad en el foro de Java en Foros del Web. Hola! Tengo que restar a la fecha actual una fecha de nacimiento para calcular la edad, pero el resultado que me da es "raro". Supongo ...
  #1 (permalink)  
Antiguo 03/09/2008, 05:59
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 17 años, 3 meses
Puntos: 1
al restar dos fechas no consigo la edad

Hola!
Tengo que restar a la fecha actual una fecha de nacimiento para calcular la edad, pero el resultado que me da es "raro". Supongo que será algún formato de fecha o algún tipo, pero no sé cual, dejo el código, si alguien ve algo que suelte un grito!!




SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/mm/yyyy");

String fechaNac = request.getParameter("fechaNacimiento");

if (fechaNac!=null){
Date fechaNacimiento = formatoFecha.parse(fechaNac);
alumno.setFechaNacimiento(fechaNacimiento);
Date fechaActual = new Date();
long diferencia = fechaActual.getTime() - fechaNacimiento.getTime();
double edad = Math.floor(diferencia / (1000 * 60 * 60 * 24));
alumno.setEdad((int) edad);
}

Saludos!!
  #2 (permalink)  
Antiguo 03/09/2008, 06:22
 
Fecha de Ingreso: septiembre-2008
Mensajes: 12
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: al restar dos fechas no consigo la edad

No te compliques la vida. Más facil (cuento de la vieja)

Pilla el año, el mes y el dia con el split:

edad = año_actual - año_nac;

if( (mes_actual < mes_nacimiento) ||
((mes_actual == mes_nacimiento) && (dia_nacimiento < dia_actual)) )
edad = edad - 1;


saludos!
  #3 (permalink)  
Antiguo 03/09/2008, 06:45
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: al restar dos fechas no consigo la edad

Tienes razón, es más fácil así, solo un detalle, lo del día creo que es al revés.
Gracias marcial
Saludos!!
  #4 (permalink)  
Antiguo 03/09/2008, 07:04
 
Fecha de Ingreso: septiembre-2008
Mensajes: 12
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: al restar dos fechas no consigo la edad

sí, es al revés :)
  #5 (permalink)  
Antiguo 03/09/2008, 12:04
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: al restar dos fechas no consigo la edad

De todas formas, con:

double edad = Math.floor(diferencia / (1000 * 60 * 60 * 24));

Estas calculando el numero de días de edad de una persona, no los años .

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #6 (permalink)  
Antiguo 03/09/2008, 12:54
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: al restar dos fechas no consigo la edad

Ah!! jaja, tienes razón GreenEyed, estaba bien hecho!! Gracias a los dos!

Saludos!!
  #7 (permalink)  
Antiguo 04/04/2009, 14:11
 
Fecha de Ingreso: abril-2009
Mensajes: 1
Antigüedad: 15 años
Puntos: 0
Respuesta: al restar dos fechas no consigo la edad

Como andas? mira con tan solo agregarle, que al total te lo divida por 365, te da la fecha, por ejemplo:

int edad = (int) (Math.floor(tiempo / (1000 * 60 * 60 * 24)))/365;

Espero que te sea de ayuda saludos.-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:14.