工具如下:

package xxx;import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;/*** 身份证工具类** @author Cron* @date 2022/3/8*/
@Slf4j
public class IDCardUtil {private static final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");/*** 18位身份证获取性别和年龄** @param CardCode* @return*/public static Map<String, String> identityCard18(String CardCode) {Map<String, String> map = new HashMap<>();// 得到年份String year = CardCode.substring(6).substring(0, 4);// 得到月份String month = CardCode.substring(10).substring(0, 2);//得到日//String day=CardCode.substring(12).substring(0,2);String sex;// 判断性别if (Integer.parseInt(CardCode.substring(16).substring(0, 1)) % 2 == 0) {sex = "女";} else {sex = "男";}// 得到当前的系统时间Date date = new Date();// 当前年份String currentYear = format.format(date).substring(0, 4);// 月份String currentMonth = format.format(date).substring(5, 7);//String currentdDay=format.format(date).substring(8,10);int age = 0;// 当前月份大于用户出身的月份表示已过生日if (Integer.parseInt(month) <= Integer.parseInt(currentMonth)) {age = Integer.parseInt(currentYear) - Integer.parseInt(year) + 1;} else {// 当前用户还没过生日age = Integer.parseInt(currentYear) - Integer.parseInt(year);}map.put("sex", sex);map.put("age", String.valueOf(age));return map;}/*** 15位身份证获取性别和年龄** @param card* @return*/public static Map<String, String> identityCard15(String card) {Map<String, String> map = new HashMap<>();//年份String year = "19" + card.substring(6, 8);//月份String yue = card.substring(8, 10);//日//String day=card.substring(10, 12);String sex;if (Integer.parseInt(card.substring(14, 15)) % 2 == 0) {sex = "女";} else {sex = "男";}// 得到当前的系统时间Date date = new Date();//当前年份String currentYear = format.format(date).substring(0, 4);//月份String currentMonth = format.format(date).substring(5, 7);//String fday=format.format(date).substring(8,10);int age = 0;//当前月份大于用户出身的月份表示已过生日if (Integer.parseInt(yue) <= Integer.parseInt(currentMonth)) {age = Integer.parseInt(currentYear) - Integer.parseInt(year) + 1;} else {// 当前用户还没过生日age = Integer.parseInt(currentYear) - Integer.parseInt(year);}map.put("sex", sex);map.put("age", String.valueOf(age));return map;}public static Map<String, String> getSexAgeInfo(String card) {Map<String, String> result = new HashMap<>();try {if (StringUtils.isNotBlank(card)) {if (card.length() > 16) {result = identityCard18(card);} else {result = identityCard15(card);}}} catch (Exception e) {log.error("IDCardUtil err:{}", e.getMessage());}return result;}public static void main(String[] args) {Map<String, String> map = getSexAgeInfo("XX");}}

身份证解析性别年龄工具相关推荐

  1. java 跟据身份证识别性别年龄

    java 跟据身份证识别性别年龄 package com.bdzk.sys.config.utils;import java.text.SimpleDateFormat; import java.ut ...

  2. JAVA工具类-根据身份证进行性别和年龄计算

    根据身份证号码计算年龄(根据是否过生日判断周岁年龄)及性别 import java.text.ParseException; import java.text.SimpleDateFormat; im ...

  3. 通过身份证号得到年龄、性别和出生日期

    注:目前只针对18位身份证号码. 不多说了,直接上代码,调用IdCard(UUserCard,num)方法即可,其中UUserCard为身份 //通过身份证号计算年龄.性别.出生日期 function ...

  4. python 根据身份证号计算年龄和性别_excel如何根据身份证号计算男女出生日期、性别和年龄?分享了!...

    工作中,有时需要从身份证号中提取性别.出生日期.年龄等.如果手工统计,不仅容易出错,还耗时耗力.春暖花开的时候,有那时间不如出去踏青散步,赏花游玩. 下面小编为大家分享一种方法,使用Excel函数轻松 ...

  5. Js--根据身份证号计算年龄、性别、出生年月日

    根据身份证号获取生日 export function getBirthdayByIdCard(idCard: string): string {if (idCard.length === 15) {r ...

  6. js前端通过身份证号判断年龄、性别、出生日期。

    方法有两个参数,第一个形参传身份证号,第二个形参传num. num=1 代表返回出生日期. num=2代表返回性别. num=3代表返回年龄. //通过身份证号计算年龄.性别.出生日期 functio ...

  7. 根据身份证号计算年龄、性别

    import java.text.SimpleDateFormat; import java.util.Date; //身份证处理 public class IDUtils { /** * 根据身份证 ...

  8. 前端原生javaScript,通过身份证号判断年龄、性别、出生日期。

    方法有两个参数,第一个形参传身份证号,第二个形参传num. num=1 代表返回出生日期. num=2代表返回性别. num=3代表返回年龄. //通过身份证号计算年龄.性别.出生日期 functio ...

  9. C# 获取身份证中的性别/年龄

    获取身份证中的性别,代码如下: public static bool GetGenderByIdCard(string idCard) {if (string.IsNullOrWhiteSpace(i ...

最新文章

  1. 【kissfft】使用kiss_fft做FFT与iFFT
  2. layui表格使用复选框批量删除_word表格技巧:如何对表格进行样式批处理
  3. 监听者模式理解(Swing)
  4. linux 手动添加 swap 分区
  5. linux 服务器基本信息,查看linux服务器基本信息
  6. java基础 -- 数据类型,基本程序结构
  7. namenode启动不了以及datanode启动不了的解决办法
  8. python电脑推荐_6款Python必备的可视化工具推荐
  9. .NET 6 新特性 System.Text.Json 中的 Writeable DOM
  10. 求两个已排序单链表中相同的数据(C语言)
  11. 快速排序+统计→奶牛的耳语(洛谷P1296题题解,Java语言描述)
  12. 这月跳槽的多吗?月薪多少才正常
  13. Sobel算子及cvSobe
  14. idea jstl需要导包吗_1,IDEA-安装及全局配置
  15. 单机到集群的WEB架构演变
  16. matlab太阳影子定位,基于MATLAB软件的太阳影子定位
  17. 445端口的简单利用
  18. C语言全局变量和局部变量的区别详解
  19. N卡和A卡有什么区别?A卡和N卡的区别,一个动图秒懂
  20. win7 此计算机无法连接到家庭组,Win7旗舰版无法进入家庭组如何处理

热门文章

  1. jvm工具系列之 -- jmap
  2. 【附源码】计算机毕业设计SSM木棉堂水果电商平台
  3. Charterstone for Mac 契约石 中文版 好玩的桌游棋盘战略游戏
  4. mac下关闭chrome浏览器的自动更新
  5. Android内购踩坑
  6. 在Cygwin下的幸福生活
  7. Python——pygame 面向对象的飞行小鸟(Flappy bird)
  8. jfreechart 备份文件
  9. 用户和用户组管理-用户和用户配置文件-影子文件
  10. 一次网站性能优化经历