java输入身份证(18位),输出年龄。

2024-12-02 11:39:34
推荐回答(5个)
回答1:

public static void main(String[] sg0) {
String s = "350424198705062023";
int leh = s.length();
System.out.println(s.length());
if (leh != 18 && leh != 15) {
System.out.println("世谨配NO"晌唤);
}
else {
if (leh == 18) {
int se = Integer.valueOf(s.substring(leh - 1)) % 2;
String dates = s.substring(6, 10) + "-" + s.substring(10, 12) + "-" + s.substring(12, 14);
System.out.println(dates);
String sex = "";
if (leh == 0) {
sex = "M";
}
else {
sex = "F";
}
System.out.println(sex + "\t" + dates);
}
else {
String dates = "19" + s.substring(6, 8) + "搜指-" + s.substring(8, 10) + "-" + s.substring(10, 12);
System.out.println(dates);
}
}
}

回答2:

new Date()现在是时间,再用subString()将省份证的日期截渗轿族取下丛弊来,帆仿将两个日期格式一下,相减,得到的数的前面的2位就是年龄,输出

回答3:

这个给你说个思路吧,一般身份证的第七位神此到第十游枯迅四位是持有身份证人的出生年月,你可以截取获得本人的出生年份,然后与当前时间比较获得本人年龄败则,本想给你写个,想想也许你要的是思路

回答4:

给你方法啊:
身份证号码作18位的字符串,截取“年”,与当前时间做计算得出结果;要是还有其他要求比如说具体的周岁计算尘森并,那就再比较下“月派迹”、“日春册”。

回答5:

将生日提取, 格式化成时间 和现在的时间求差值

public static void main(String[] args) throws Exception {
String bday = "19800101";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(bday));
Date d = c.getTime();
int age = (int) ((new Date().getTime()-d.getTime())/枣埋1000/60/60/凳孙蚂凯虚24/365);
System.out.println(age);
}