200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 根据身份证号码计算生日/年龄/性别

根据身份证号码计算生日/年龄/性别

时间:2021-11-16 08:09:07

相关推荐

根据身份证号码计算生日/年龄/性别

话不多说直接上代码:

/*** 通过身份证号码获取出生日期(birthday)、年龄(age)、性别(sex)* @param idCardNo 身份证号码* @return 返回的出生日期格式:1993-05-07 性别格式:1:男,0:女*/public static Map<String, String> getBirthdayAgeSex(String idCardNo) {String birthday = "";String age = "";String sexCode = "";int year = Calendar.getInstance().get(Calendar.YEAR);char[] number = idCardNo.toCharArray();boolean flag = true;if (number.length == 15) {for (int x = 0; x < number.length; x++) {if (!flag){return new HashMap<String, String>();}flag = Character.isDigit(number[x]);}} else if (number.length == 18) {for (int x = 0; x < number.length - 1; x++) {if (!flag){return new HashMap<String, String>();}flag = Character.isDigit(number[x]);}}if (flag && idCardNo.length() == 15) {birthday = "19" + idCardNo.substring(6, 8) + "-"+ idCardNo.substring(8, 10) + "-"+ idCardNo.substring(10, 12);sexCode = Integer.parseInt(idCardNo.substring(idCardNo.length() - 3, idCardNo.length())) % 2 == 0 ? "0" : "1";age = (year - Integer.parseInt("19" + idCardNo.substring(6, 8))) + "";} else if (flag && idCardNo.length() == 18) {birthday = idCardNo.substring(6, 10) + "-"+ idCardNo.substring(10, 12) + "-"+ idCardNo.substring(12, 14);sexCode = Integer.parseInt(idCardNo.substring(idCardNo.length() - 4, idCardNo.length() - 1)) % 2 == 0 ? "0" : "1";age = (year - Integer.parseInt(idCardNo.substring(6, 10))) + "";}Map<String, String> map = new HashMap<String, String>();map.put("birthday", birthday);map.put("age", age);map.put("sex", sexCode);return map;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。