public class AgeUtil {
public static int getAgeByBirth(Date birthDay) throws ParseException {
int age = 0;
Calendar cal = Calendar.getInstance();
//出生日期晚于当前时间,无法计算
if (cal.before(birthDay)) {
throw new IllegalArgumentException(
"The birthDay is before Now.It's unbelievable!");
}
//当前年份
int yearNow = cal.get(Calendar.YEAR);
//当前月份
int monthNow = cal.get(Calendar.MONTH);
//当前日期
int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
cal.setTime(birthDay);
int yearBirth = cal.get(Calendar.YEAR);
int monthBirth = cal.get(Calendar.MONTH);
int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
//计算整岁数
age = yearNow - yearBirth;
if (monthNow <= monthBirth) {
if (monthNow == monthBirth) {
//当前日期在生日之前,年龄减一
if (dayOfMonthNow < dayOfMonthBirth){
age--;
}
} else {
//当前月份在生日之前,年龄减一
age--;
}
}
return age;
}
}
计算年龄的工具类
最新推荐文章于 2023-07-06 15:38:33 发布