util 以备不时之需
public static int caleAge(String birthDateStr) throws ParseException {
return caleAge(birthDateStr, null);
}
public static int caleAge(String birthDateStr, String deathDateStr) throws ParseException {
Date end = new Date();
DateFormat df = new SimpleDateFormat("yyyyMMdd");
if (StringUtils.hasText(deathDateStr)) {
end = df.parse(deathDateStr);
}
Calendar cal = Calendar.getInstance();
cal.setTime(end);
int endYear = cal.get(Calendar.YEAR);
int endMonth = cal.get(Calendar.MONTH);
int endDay = cal.get(Calendar.DAY_OF_MONTH);
Date start = df.parse(birthDateStr);
cal.setTime(start);
int startYear = cal.get(Calendar.YEAR);
int startMonth = cal.get(Calendar.MONTH);
int startDay = cal.get(Calendar.DAY_OF_MONTH);
int age = endYear - startYear;
if (endMonth < startMonth) {
age--;
}
if (endMonth == startMonth && endDay < startDay) {
age--;
}
return age;
}