分享

利用身份证号获取生日信息

 算法与编程之美 2023-02-22 发布于四川

1 问题

如何利用Java程序从身份证号中获取生日信息。

2 方法

采用“截图+文字+代码”的方式描述。

//调用函数获取当前日期以及截取身份证号码中的数字
import java.util.Calendar;
import java.util.Scanner;
public class nain {
   static Scanner sc = new Scanner(System.in);
   static Calendar c=Calendar.getInstance();
   public static void main(String[] args) {
       System.out.println("请输入身份证:");
       String IDcard = sc.next();
       IDcard(IDcard);
   }
   public static void IDcard(String IDcard) {
       switch(IDcard.length()) {
           case 18:
           case 16:
//分别获取出生年月日,以及判断获取的日期是否合理。
               String year = IDcard.substring(6, 10);
               if(Integer.decode(year) <1900 && Integer.decode(year)>c.get(Calendar.YEAR))
                   System.out.println("年龄不合法");
               String month = IDcard.substring(10,12);
               if(Integer.decode(month)<1 && Integer.decode(month)>12)
                   System.out.println("身份证不合法");
               String day = IDcard.substring(12,14);
               c.set(Integer.decode(year) ,Integer.decode(month), 0);
               if(Integer.decode(day)>c.get(Calendar.DAY_OF_MONTH))
                   System.out.println("身份证不合法");
               System.out.println("您的生日为:"+year+"年"+month+"月"+day+"日");
               break;
           default:
               System.out.println("身份证不合法");
               break;
       }
   }
}

3 结语

在利用身份证号码获取生日信息时,难点在于如何分别获取身份证号码的信息,在输入身份证号码时就应该把输入的数字转换为字符串型,在获取当前日期时,在调用函数后的月份结果时从0开始的,通过身份证号不同位置的数字代表不同的信息六可以轻松计算出结果,最后不要忘记判断时期是否比较真实。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约