1.把出生日期字符串转换为日期格式。

public static Date parse(String strDate) throws ParseException {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

return sdf.parse(strDate);

}

 2.计算年龄

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) {

if (dayOfMonthNow < dayOfMonthBirth) age--;//当前日期在生日之前,年龄减一

}else{

age--;//当前月份在生日之前,年龄减一

} } return age; }

 3.执行方法

public static void main(String[] args) {

try {

int age = getAge(parse("1990-09-27")); //由出生日期获得年龄***

System.out.println("age:"+age);

} catch (Exception e) {

e.printStackTrace();

}

}

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐