å®ç°æ¥éª¤ï¼
1ãè·åå½åæ¶é´
2ãå¤æåºçæ¥ææ¯å¦å°äºå½åæ¶é´ï¼å¦æ大äºï¼åå¼åä¸åº
3ãä»å½åæ¶é´ä¸ååºå¹´ãæãæ¥ï¼ä»åºçæ¥æä¸ååºå¹´ãæãæ¥ï¼å¹´ä»½ç¸å
4ãç¶ååå
·ä½å¤æ
示ä¾ä»£ç å¦ä¸ï¼
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;
//å½åæ份ä¸åºçæ¥æçæ份ç¸æ¯ï¼å¦ææ份å°äºåºçæ份ï¼åå¹´é¾ä¸å1ï¼è¡¨ç¤ºä¸æ»¡å¤å°å¨å²
if (monthNow <= monthBirth) {
//å¦ææ份ç¸çï¼å¨æ¯è¾æ¥æï¼å¦æå½åæ¥ï¼å°äºåºçæ¥ï¼ä¹å1ï¼è¡¨ç¤ºä¸æ»¡å¤å°å¨å²
if (monthNow == monthBirth) {
if (dayOfMonthNow < dayOfMonthBirth) age--;
}else{
age--;
}
}
System.out.println("age:"+age);
return age;
}