From 0c009141867c996897928c4f12490f21b78222f2 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 24 一月 2024 18:12:37 +0800
Subject: [PATCH] 111

---
 server/service/src/main/java/com/doumee/core/utils/Constants.java |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 2c7f422..278dcd8 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -3,6 +3,7 @@
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.dao.business.model.Solutions;
+import io.swagger.models.auth.In;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 
@@ -13,6 +14,8 @@
 import java.math.BigDecimal;
 import java.net.URL;
 import java.net.URLDecoder;
+import java.time.LocalDate;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.Date;
 import java.util.regex.Matcher;
@@ -145,6 +148,36 @@
         }
         return d.intValue();
     }
+
+    public static long getAgeByIdCard(String idCard){
+        int birthYear = Integer.parseInt(idCard.substring(6, 10));
+        int birthMonth = Integer.parseInt(idCard.substring(10, 12));
+        int birthDay = Integer.parseInt(idCard.substring(12, 14));
+
+        LocalDate birthDate = LocalDate.of(birthYear, birthMonth, birthDay);
+        LocalDate currentDate = LocalDate.now();
+        long age = ChronoUnit.YEARS.between(birthDate, currentDate);
+        return age;
+    }
+
+    public static Integer getSexByIdCard(String idCard){
+        Pattern pattern = Pattern.compile("\\d{17}[\\d|x]"); // 瀹氫箟韬唤璇佸彿鐮佹牸寮忕殑姝e垯琛ㄨ揪寮�
+        Matcher matcher = pattern.matcher(idCard);
+        Integer sex = 1;
+        if (matcher.matches()) {
+            int genderCode = Integer.parseInt(idCard.substring(16, 17)); // 浠庣17浣嶅紑濮嬫彁鍙栨�у埆缂栫爜锛堝鏁颁负鐢锋�э紝鍋舵暟涓哄コ鎬э級
+
+            if ((genderCode % 2 == 1)) {
+                sex = 1;
+            } else {
+                sex = 2;
+            }
+        } else {
+           sex = -1;
+        }
+        return sex;
+    }
+
     /**
      * 鐘舵�� 0宸蹭繚瀛樸��1寰呭鏍搞��2瀹℃牳閫氳繃銆�3閫�鍥炰慨鏀广��4瀹℃牳椹冲洖銆�5寰呮湇鍔℃満鏋勭‘璁ゃ��6鏈嶅姟鏈烘瀯鎷掔粷銆�7宸插垎閰嶆湇鍔℃満鏋勩��8璇婃柇涓�
      * 锛堟垚鍔熶笂浼犵涓�浠芥湇鍔¤祫鏂欙級銆�9鏈嶅姟瀹屾垚銆�10宸插垎閰嶈瘎鍒嗕笓瀹躲��11宸插畬鎴愶紙涓撳涓婁紶璇勫垎锛� 12閫�鍥炰慨鏀逛腑 13 宸插畬鎴愰��鍥炰慨鏀�

--
Gitblit v1.9.3