JAVA 根据身份证计算年龄的实现代码

下面一段代码给大家分享java根据身份证计算年龄的方法,具体代码如下所示:

birthDate = idCard.substring(6,10)+"-"+idCard.substring(10,12)+"-"+idCard.substring(12,14)

public static int getAgefromBirthTime(String birthTimeString){

// 先截取到字符串中的年、月、日

String strs[] = birthTimeString.trim().split("-");

int selectYear = Integer.parseInt(strs[0]);

int selectMonth = Integer.parseInt(strs[1]);

int selectDay = Integer.parseInt(strs[2]);

// 得到当前时间的年、月、日

Calendar cal = Calendar.getInstance();

int yearNow = cal.get(Calendar.YEAR);

int monthNow = cal.get(Calendar.MONTH) + 1;

int dayNow = cal.get(Calendar.DATE);

// 用当前年月日减去生日年月日

int yearMinus = yearNow - selectYear;

int monthMinus = monthNow - selectMonth;

int dayMinus = dayNow - selectDay;

int age = yearMinus;

if (yearMinus < 0) {// 选了未来的年份

age = 0;

} else if (yearMinus == 0) {// 同年的,要么为1,要么为0

if (monthMinus < 0) {// 选了未来的月份

age = 0;

} else if (monthMinus == 0) {// 同月份的

if (dayMinus < 0) {// 选了未来的日期

age = 0;

} else if (dayMinus >= 0) {

age = 1;

}

} else if (monthMinus > 0) {

age = 1;

}

} else if (yearMinus > 0) {

if (monthMinus < 0) {// 当前月>生日月

} else if (monthMinus == 0) {// 同月份的,再根据日期计算年龄

if (dayMinus < 0) {

} else if (dayMinus >= 0) {

age = age + 1;

}

} else if (monthMinus > 0) {

age = age + 1;

}

}

return age;

}

下面在看下java根据出生日期获得年龄

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--;

}

}

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

return age;

}

总结

以上所述是小编给大家介绍的JAVA 根据身份证计算年龄,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是 JAVA 根据身份证计算年龄的实现代码 的全部内容, 来源链接: utcz.com/z/319129.html

回到顶部