编写工具类,具体的实现方法和思路在代码里写好了。
public class BirthToAgeUtils {
public static String getAge(String brithDay) {
try {
// 1 格式化传入的日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date oldTime = sdf.parse(brithDay);
Calendar cd = Calendar.getInstance();
// 2 获取当前时间的年月日
int nowYear = cd.get(Calendar.YEAR);
int nowMonth = cd.get(Calendar.MONTH);
int nowDay = cd.get(Calendar.DAY_OF_MONTH);
System.out.println(nowMonth);
// 3 获取出生日期的年月日
cd.setTime(oldTime);
int oldYear = cd.get(Calendar.YEAR);
int oldMonth = cd.get(Calendar.MONTH);
int oldDay = cd.get(Calendar.DAY_OF_MONTH);
System.out.println(oldMonth);
// 4 通过年算出大概年龄
int age = nowYear - oldYear;
/*
* 四种情况:
* 第一种:旧月>新月,直接返回age-1
* 第二种:旧月=新月,但旧日>新日,返回age-1
* 第三种:旧月=新月,但旧日<=新日,返回age
* 第四种:旧月<新月,返回age
* */
if (oldMonth > nowMonth || (oldMonth == nowMonth && oldDay > nowDay)) {
return (age - 1) + "";
} else {
return age + "";
}
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}