/**
* 根据生日计算年龄
* 如:2011-02-13 换算之后是 8岁1个月24天
* @param birth
* @return String
*/
public static String getAge(Date birthDay){
Calendar birthday = Calendar.getInstance();
birthday.setTime(birthDay);
Calendar now = Calendar.getInstance();
int day = now.get(Calendar.DAY_OF_MONTH) - birthday.get(Calendar.DAY_OF_MONTH);
int month = now.get(Calendar.MONTH) - birthday.get(Calendar.MONTH);
int year = now.get(Calendar.YEAR) - birthday.get(Calendar.YEAR);
//按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。
if(day<0){
month -= 1;
now.add(Calendar.MONTH, -1);
//得到上一个月,用来得到上个月的天数。
day = day + now.getActualMaximum(Calendar.DAY_OF_MONTH);
}
if(month<0){
month = (month+12)%12;
year--;
}
return year+"岁"+month+"月"+day+"天";
}