生地,年月日,性别及年龄"/>
从身份证号里可以解析出出生地,年月日,性别及年龄
public static void main(String[] args) {System.out.println("请输入你的身份证号:"); // 创建键盘输入String IDScan = new Scanner(System.in).nextLine(); // 对应省份,截取字符串前两个字符String address = IDScan.substring(0, 2);String[] province = {"11北京市", "12天津市", "13河北省", "14山西省", "15内蒙古自治区","21辽宁省", "22吉林省", "23黑龙江省", "31上海市", "32江苏省","33浙江省", "34安徽省", "35福建省", "36江西省", "37山东省","41河南省", "42湖北省", "43湖南省", "44广东省", "45广西壮族自治区","46海南省", "50重庆市", "51四川省", "52贵州省", "53云南省","54西藏自治区", "61陕西省", "62甘肃省", "63青海省", "64宁夏回族自治区","65新疆维吾尔自治区", "71台湾省", "81香港特别行政区", "82澳门特别行政区"}; // 遍历province为:IDs,根据IDs包含有身份证前两位(address)的字符串,利用substring(2,IDs.length())提取出需要的字符串for (String IDs : province) {if (IDs.contains(address)) {System.out.println(IDs.substring(2, IDs.length()) + "");}} // 性别gender,得出身份证倒数第二位数字进行判断男女String gender = IDScan.substring(IDScan.length() - 2, IDScan.length() - 1);if (Integer.parseInt(gender) % 2 == 1) {gender = "男";} else {gender = "女";}System.out.print(gender + ""); // 出生年月日birthday & 生肖属相 zodiacSignString birthday = IDScan.substring(6, 14); // 截取字符串,转换成整型int year = Integer.parseInt(birthday.substring(0, 4));int month = Integer.parseInt(birthday.substring(4, 6));int day = Integer.parseInt(birthday.substring(6)); // 创建数组存储12生肖 利用年份对12取余找到对应的索引 输出生肖属相String[] zodiacSign = {"猴", "鸡", "狗", "猪", "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊"};System.out.println("属" + zodiacSign[year % 12]); // 获取当前系统时间(从1970年至今)减去出生年份 得出当前的年龄int age = (int) (System.currentTimeMillis() / 1000 / 60 / 60 / 24 / 365 - year + 1970);System.out.print(age + "岁");System.out.println("出生日期:" + year + "年" + month + "月" + day + "日");}
更多推荐
从身份证号里可以解析出出生地,年月日,性别及年龄
发布评论