从身份证号里可以解析出出生地,年月日,性别及年龄

 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 & 生肖属相 zodiacSign
    String 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 + "日");
  }
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据牧马人

你的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值