|
@@ -238,11 +238,29 @@ public class IdCardUtil {
|
|
|
}
|
|
|
|
|
|
public static Gender getGenderByIdCard(String idCard) {
|
|
|
+ if (idCard.length() < 15) {
|
|
|
+ return Gender.UNKNOWN;
|
|
|
+ }
|
|
|
+ if (idCard.length() == 15) {
|
|
|
+ idCard = convertIdcarBy15bit(idCard);
|
|
|
+ }
|
|
|
+ if (StringUtil.isBlank(idCard) || idCard.length() != 18) {
|
|
|
+ return Gender.UNKNOWN;
|
|
|
+ }
|
|
|
String gender = idCard.substring(16, 17);
|
|
|
return Integer.parseInt(gender) % 2 == 0 ? Gender.FEMALE : Gender.MALE;
|
|
|
}
|
|
|
|
|
|
public static String getBirthDayByIdCard(String idCard) {
|
|
|
+ if (idCard.length() < 15) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ if (idCard.length() == 15) {
|
|
|
+ idCard = convertIdcarBy15bit(idCard);
|
|
|
+ }
|
|
|
+ if (StringUtil.isBlank(idCard) || idCard.length() != 18) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
String rawbirth = idCard.substring(6, 14);
|
|
|
return rawbirth.substring(0, 4) + "-"
|
|
|
+ rawbirth.substring(4, 6) + "-"
|