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

 我来答
dngoryaner
推荐于2016-02-10 · TA获得超过2350个赞
知道小有建树答主
回答量:2404
采纳率:0%
帮助的人:1138万
展开全部
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);
}
}
}
趴趴熊出没5f22e
2012-12-14
知道答主
回答量:6
采纳率:0%
帮助的人:3.3万
展开全部
new Date()现在是时间,再用subString()将省份证的日期截取下来,将两个日期格式一下,相减,得到的数的前面的2位就是年龄,输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s2t11
2012-12-14
知道答主
回答量:24
采纳率:0%
帮助的人:16.2万
展开全部
这个给你说个思路吧,一般身份证的第七位到第十四位是持有身份证人的出生年月,你可以截取获得本人的出生年份,然后与当前时间比较获得本人年龄,本想给你写个,想想也许你要的是思路
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
valentine3912
2012-12-14 · 超过17用户采纳过TA的回答
知道答主
回答量:149
采纳率:100%
帮助的人:50.4万
展开全部
给你方法啊:
身份证号码作18位的字符串,截取“年”,与当前时间做计算得出结果;要是还有其他要求比如说具体的周岁计算,那就再比较下“月”、“日”。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenguang5092
2012-12-14 · TA获得超过664个赞
知道小有建树答主
回答量:520
采纳率:50%
帮助的人:457万
展开全部
将生日提取, 格式化成时间 和现在的时间求差值

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");这个可以这么写吗?
因为还要查看是否过了生日……看是否还的加一岁……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式