根据用户生日计算年龄

/**
* 根据用户生日计算年龄
*/
public static int getAgeByBirthday ( Date birthday ) {
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 ) + 1 ;
int dayOfMonthNow = cal . get ( Calendar . DAY_OF_MONTH );

cal . setTime ( birthday );
int yearBirth = cal . get ( Calendar . YEAR );
int monthBirth = cal . get ( Calendar . MONTH ) + 1 ;
int dayOfMonthBirth = cal . get ( Calendar . DAY_OF_MONTH );

int age = yearNow - yearBirth ;

if ( monthNow <= monthBirth ) {
if ( monthNow == monthBirth ) {
// monthNow==monthBirth
if ( dayOfMonthNow < dayOfMonthBirth ) {
age --;
}
} else {
// monthNow>monthBirth
age --;
}
}
return age

你可能感兴趣的:(javase)