import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
*
* @title: GetAgeByBirthday
*
* @description: 由出生日期获得年龄
*/
public class GetAgeByBirthday {
public static void main(String[] args) throws Exception {
SimpleDateFormat s = new SimpleDateFormat("yyyy/MM/dd");
Date date = s.parse("1995/6/7");
int age = getAge(date);
System.out.println(age);
System.exit(0);
}
public static int getAge(Date birthDay) throws Exception {
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);
int age = yearNow - yearBirth;
if (monthNow <= monthBirth) {
if (monthNow == monthBirth) {
if (dayOfMonthNow < dayOfMonthBirth) {
age--;
}
} else {
age--;
}
}
return age;
}
}