瀏覽代碼

预问诊登录对接修改

rengb 5 年之前
父節點
當前提交
471b755ea4
共有 1 個文件被更改,包括 93 次插入0 次删除
  1. 93 0
      common/src/main/java/com/diagbot/util/IdCard.java

+ 93 - 0
common/src/main/java/com/diagbot/util/IdCard.java

@@ -0,0 +1,93 @@
+package com.diagbot.util;
+
+import java.util.Calendar;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/11/20 13:18
+ */
+public class IdCard {
+    /**
+     * 中国公民身份证号码最小长度。
+     */
+    public final int CHINA_ID_MIN_LENGTH = 15;
+
+    /**
+     * 中国公民身份证号码最大长度。
+     */
+    public final int CHINA_ID_MAX_LENGTH = 18;
+
+    /**
+     * 根据身份编号获取年龄
+     *
+     * @param idCard 身份编号
+     * @return 年龄
+     */
+    public static int getAgeByIdCard(String idCard) {
+        int iAge = 0;
+        Calendar cal = Calendar.getInstance();
+        String year = idCard.substring(6, 10);
+        int iCurrYear = cal.get(Calendar.YEAR);
+        iAge = iCurrYear - Integer.valueOf(year);
+        return iAge;
+    }
+
+    /**
+     * 根据身份编号获取生日
+     *
+     * @param idCard 身份编号
+     * @return 生日(yyyyMMdd)
+     */
+    public static String getBirthByIdCard(String idCard) {
+        return idCard.substring(6, 14);
+    }
+
+    /**
+     * 根据身份编号获取生日年
+     *
+     * @param idCard 身份编号
+     * @return 生日(yyyy)
+     */
+    public static Short getYearByIdCard(String idCard) {
+        return Short.valueOf(idCard.substring(6, 10));
+    }
+
+    /**
+     * 根据身份编号获取生日月
+     *
+     * @param idCard 身份编号
+     * @return 生日(MM)
+     */
+    public static Short getMonthByIdCard(String idCard) {
+        return Short.valueOf(idCard.substring(10, 12));
+    }
+
+    /**
+     * 根据身份编号获取生日天
+     *
+     * @param idCard 身份编号
+     * @return 生日(dd)
+     */
+    public static Short getDateByIdCard(String idCard) {
+        return Short.valueOf(idCard.substring(12, 14));
+    }
+
+    /**
+     * 根据身份编号获取性别
+     *
+     * @param idCard 身份编号
+     * @return 性别(1- 男 ,2 - 女 , 0 - 未知)
+     */
+    public static int getGenderByIdCard(String idCard) {
+        int sGender = 0;
+
+        String sCardNum = idCard.substring(16, 17);
+        if (Integer.parseInt(sCardNum) % 2 != 0) {
+            sGender = 1;//男
+        } else {
+            sGender = 2;//女
+        }
+        return sGender;
+    }
+}