import java.util.Date;
import java.util.Optional;
import org.apache.commons.lang3.time.DateUtils;
import com.google.common.base.Strings;
import com.mhi.pocp.common.enums.SexEnum;
import com.mhi.utils.StringUtils;
public class IdCardUtils {
public static String getSexCode(String identifyNumber) {
if (StringUtils.isNotEmpty(identifyNumber)) {
String gender;
if (identifyNumber.length() == 15) {
gender = identifyNumber.substring(14, 15);
} else if (identifyNumber.length() == 18) {
gender = identifyNumber.substring(16, 17);
} else {
return null;
}
// 奇数为男 偶数为女
return Integer.parseInt(gender) % 2 == 0 ? SexEnum.FEMALE.getCode() : SexEnum.MALE.getCode();
}
return null;
}
public static Optional getBirthDate(String idcard) {
if (Strings.isNullOrEmpty(idcard)) {
return Optional.empty();
}
if (idcard.length() == 18) {
try {
Date d = DateUtils.parseDate(idcard.substring(6, 14), "yyyyMMdd");
return Optional.of(d);
} catch (Exception e) {
return Optional.empty();
}
}
if (idcard.length() == 15) {
try {
Date d = DateUtils.parseDate("19" + idcard.substring(6, 12), "yyyyMMdd");
return Optional.of(d);
} catch (Exception e) {
return Optional.empty();
}
}
return Optional.empty();
}
public static String toUpperCase(String idcard) {
return idcard == null ? null : idcard.toUpperCase();
}
}