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)?{
????????????????//monthNow==monthBirth
????????????????if?(dayOfMonthNow?<?dayOfMonthBirth)?{
????????????????????age--;
????????????????}?else?{
????????????????????//do?nothing
????????????????}
????????????}?else?{
????????????????//monthNow>monthBirth
????????????????age--;
????????????}
????????}?else?{
????????????//monthNow<monthBirth
????????????//donothing
????????}
????????return?age;
????}
根據生日計算年齡
根據生日計算年齡可以通過Calendar實現。最簡單可以考慮get(Calendar.DAY_OF_YEAR)來簡單修正年齡,但是遇到生日在閏年的2月29之后,或者今年是閏年的2月29之后可能出現計算不準,誤差一天。所以還是老實判斷年月日好了。
Comments
# re: 根據生日計算年齡
PC.CODE
非常好.
Posted @ 2007-12-04 10:01 回復 更多評論
# re: 根據生日計算年齡[未登錄]
louis
ding
Posted @ 2008-04-16 12:19 回復 更多評論