Tin's Blog

          You are coming a long way, baby~Thinking, feeling, memory...

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            128 隨筆 :: 0 文章 :: 221 評(píng)論 :: 0 Trackbacks
          根據(jù)生日計(jì)算年齡可以通過(guò)Calendar實(shí)現(xiàn)。最簡(jiǎn)單可以考慮get(Calendar.DAY_OF_YEAR)來(lái)簡(jiǎn)單修正年齡,但是遇到生日在閏年的2月29之后,或者今年是閏年的2月29之后可能出現(xiàn)計(jì)算不準(zhǔn),誤差一天。所以還是老實(shí)判斷年月日好了。
          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;
              }
          posted on 2006-03-10 10:00 Tin 閱讀(2620) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Other Project
          主站蜘蛛池模板: 沙坪坝区| 齐河县| 黄骅市| 县级市| 行唐县| 福泉市| 大田县| 成都市| 五寨县| 凉城县| 平潭县| 兰考县| 桂阳县| 察雅县| 龙里县| 潼关县| 道孚县| 那坡县| 罗田县| 启东市| 梧州市| 宁德市| 伊金霍洛旗| 芮城县| 乳源| 射洪县| 洛宁县| 海城市| 桐梓县| 莲花县| 甘孜县| 彭泽县| 石棉县| 吉林市| 团风县| 高陵县| 邮箱| 陵川县| 闽侯县| 鄄城县| 绿春县|