下面一段代码给大家分享java根据身份证计算年龄的方法,具体代码如下所示:
生日=idCard.substring (10) +“-”+ idCard.substring (10、12) +“-”+ idCard.substring (12、14) 公共静态int getAgefromBirthTime(字符串birthTimeString) {//先截取到字符串中的年,月,日 字符串str []=birthTimeString.trim () .split (“-”); int selectYear=Integer.parseInt (str [0]); int selectMonth=Integer.parseInt (str [1]); int selectDay=Integer.parseInt (str [2]);//得到当前时间的年,月,日 日历卡尔=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年龄=yearMinus; 如果(yearMinus & lt;0){//选了未来的年份 年龄=0; }else if (yearMinus==0){//同年的,要么为1,要么为0 如果(monthMinus & lt;0){//选了未来的月份 年龄=0; }else if (monthMinus==0){//同月份的 如果(dayMinus & lt;0){//选了未来的日期 年龄=0; }else if (dayMinus祝辞=0){ 年龄=1; } }else if (monthMinus比;0){ 年龄=1; } }else if (yearMinus比;0){ 如果(monthMinus & lt;0){//当前月祝辞生日月 }else if (monthMinus==0){//同月份的,再根据日期计算年龄 如果(dayMinus & lt;0){ }else if (dayMinus祝辞=0){ 年龄=年龄+ 1; } }else if (monthMinus比;0){ 年龄=年龄+ 1; } } 返回年龄; }
公共静态int getAge(日期的生日)抛出异常{ 日历卡尔=Calendar.getInstance (); 如果(cal.before(生日)){ 把新的IllegalArgumentException ( “现在生日之前。真是难以置信!”); } int yearNow=cal.get (Calendar.YEAR); int monthNow=cal.get (Calendar.MONTH); int dayOfMonthNow=cal.get (Calendar.DAY_OF_MONTH); cal.setTime(生日); int yearBirth=cal.get (Calendar.YEAR); int monthBirth=cal.get (Calendar.MONTH); int dayOfMonthBirth=cal.get (Calendar.DAY_OF_MONTH); int年龄=yearNow - yearBirth; 如果(monthNow & lt;=monthBirth) { 如果(monthNow==monthBirth) { 如果(dayOfMonthNow & lt;年龄——dayOfMonthBirth); 其他}{ 年龄——; } } System.out.println年龄(年龄:" +); 返回年龄; }
以上所述是小编给大家介绍的JAVA根据身份证计算年龄,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!