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

网友投稿 555 2023-02-05


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 bihttp://rthDay 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 根据身份证计算年龄,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java 判断线程状态(JAVA线程的状态)
下一篇:Vue使用vux
相关文章

 发表评论

暂时没有评论,来抢沙发吧~