En ocaciones nos hemos visto en la necesidad de obtener los años transcurrido en un rango de fecha, que para este caso solo obtenemos los años y no los meses ni los días transcurridos.
Un algoritmo corto y sencillo que nos ayuda.
/**Método que calcula la edad a partir de dos fecha, retorna un entero
*parametros: pNacio es la fecha en que la persona nació.
*pFecha = es la fecha en la que apartir de esta fecha se quiere calcular.
*/
public int calcularEdad(Date pNacio,Date pFecha){
Calendar fecha = new GregorianCalendar();
fecha.setTime(pNacio);
int diaNacio = fecha.get(Calendar.DATE);
int mesNacio = fecha.get(Calendar.MONTH)+1;
int anoNacio = fecha.get(Calendar.YEAR);
fecha.setTime(pFecha);
int anoFecha = fecha.get(Calendar.YEAR);
int mesFecha = fecha.get(Calendar.MONTH)+1;
int diaFecha = fecha.get(Calendar.DATE);
int difAno = anoFecha - anoNacio;
int difMes = mesFecha - mesNacio;
int difDia = diaFecha - diaNacio;
if(difMes <0){
difAno-=1;
}else if(difMes == 0){
if(difDia < 0){
difAno-=1;
}
}
return difAno;
}
No hay comentarios:
Publicar un comentario