public
class
DateGetAge
{
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;
}
}