java输入身份证(18位),输出年龄。
10个回答
展开全部
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);
}
}
}
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);
}
}
}
展开全部
new Date()现在是时间,再用subString()将省份证的日期截取下来,将两个日期格式一下,相减,得到的数的前面的2位就是年龄,输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个给你说个思路吧,一般身份证的第七位到第十四位是持有身份证人的出生年月,你可以截取获得本人的出生年份,然后与当前时间比较获得本人年龄,本想给你写个,想想也许你要的是思路
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你方法啊:
身份证号码作18位的字符串,截取“年”,与当前时间做计算得出结果;要是还有其他要求比如说具体的周岁计算,那就再比较下“月”、“日”。
身份证号码作18位的字符串,截取“年”,与当前时间做计算得出结果;要是还有其他要求比如说具体的周岁计算,那就再比较下“月”、“日”。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将生日提取, 格式化成时间 和现在的时间求差值
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);
}
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);
}
追问
我想问一下
String str="0101";
SimpleDateFormat sdf = new SimpleDateFormat("MMdd");这个可以这么写吗?
因为还要查看是否过了生日……看是否还的加一岁……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询