java根据出生日期计算出年龄

发布时间:2018-05-18 04:07  浏览次数:405
    String dataOfBirth = "1991-10-21";//出生日期  
    
    try {  
            //此处是获得的年龄  
          int  age = getAge(parse(dataOfBirth));           //由出生日期获得年龄
    } catch (Exception e) {  
            e.printStackTrace();  
    }  
  
  
    //出生日期字符串转化成Date对象  
    public  Date parse(String strDate) throws ParseException {  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
        return sdf.parse(strDate);  
    }  
  
    //由出生日期获得年龄  
    public  int getAge(Date birthDay) throws Exception {  
        Calendar cal = Calendar.getInstance();  
  
        if (cal.before(birthDay)) {  
            throw new IllegalArgumentException("出生日期小于当前时间,无效的日期!");  
        }  
        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;  
    }


点击领取

标签

归档

排行榜