您的位置:首页 > 编程语言 > Java开发

关于java中根据身份证求生日和年龄的问题

2013-08-25 22:49 274 查看
/*这个也没什么大的功能,也没什么安全验证,只是对输入的身份证号码的长度进行了验证。
其他的功能可以自己添加。*/
import java.util.*;
import java.util.Scanner;
import java.text.*;
import java.util.Date;

class Test02
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("请输入你的身份证号码:");
String s = input.next();
while(s.length()!=18)           //输入个数判断,初步验证身份证号码的真假
{
System.out.println("你的输入有误,请重新输入!");
s = input.next();

}
//  通过String[]的substring方法来读取信息
String yy1 = s.substring(6,10);          //出生的年份
String mm1 = s.substring(10,12);       //出生的月份
String dd1 = s.substring(12,14);         //出生的日期
System.out.println("你的生日为:");
String birthday = yy1.concat("-").concat(mm1).concat("-").concat(dd1);
//使用replace替换掉字符串中出现的0
System.out.println(mm1.replace("0","")+"月"+dd1.replace("0","")+"号");
System.out.println("你的出生日期:");
System.out.println(birthday);
//计算年龄
try
{
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
String s1 = sdf.format(date);
Date today = sdf.parse(s1);
/*parse方法可以自己查api,他就是将文档(此处是String)格式转成sdf(自己定义的日期格式)。*/
Date birth = sdf.parse(birthday);
System.out.println("你的年龄:");
System.out.println(today.getYear() - birth.getYear());
//	System.out.println(today);
//  System.out.println(today.getYear());

}
catch (Exception e)
{
System.out.println("a problem has happened!");
}

System.out.println("Thank you!");

}
}

//由于版本的问题,在此处进行了异常处理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: