JAVA工具类-根据身份证进行性别和年龄计算
根据身份证号码计算年龄(根据是否过生日判断周岁年龄)及性别
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;import org.apache.commons.lang3.StringUtils;public class MyDateUtils {private MyDateUtils() {throw new IllegalStateException("MyDateUtils class");}public static final String DATE_FORMAT_YMD = "yyyy-MM-dd";/*** 分析身份证号, 得出性别,年龄,是否有效年龄 * @param idCardNo* @return* @throws ParseException*/public static Map<String, Object> analyzingIdCardNo(String idCardNo) {Map<String, Object> rtnMap = new HashMap<>();Calendar sysCal = Calendar.getInstance();sysCal.set(Calendar.HOUR_OF_DAY, 0);sysCal.set(Calendar.MINUTE, 0);sysCal.set(Calendar.SECOND, 0);Calendar cardCal = Calendar.getInstance();cardCal.setTime(convertStr2Date(idCardNo.substring(6, 14)));// 计算年龄int age = sysCal.get(Calendar.YEAR) - cardCal.get(Calendar.YEAR);int sysMonth = sysCal.get(Calendar.MONTH);int cardMonth = cardCal.get(Calendar.MONTH);if (sysMonth <= cardMonth) {if (sysMonth == cardMonth) {if (sysCal.get(Calendar.DAY_OF_MONTH) < cardCal.get(Calendar.DAY_OF_MONTH))age--; // 当前日期在生日之前,则年龄减一} else {age--; // 当前月份在生日之前,则年龄减一}}// 性别int sex = Integer.parseInt(idCardNo.substring(16, 17)) % 2;// 判断岁数sysCal.add(Calendar.DAY_OF_MONTH, 60);cardCal.add(Calendar.YEAR, sex == 1 ?60 :50);if (cardCal.compareTo(sysCal) > 0) {rtnMap.put("ok", "1");rtnMap.put("性别", sex == 1 ?"男" :"女");rtnMap.put("年龄", age);}return rtnMap;}/*** 字串转日期(零时零分零秒)* @param dateStr* @param format "yyyy-MM-dd/yyyyMMddHHmmss/yyyy-MM-dd HH:mm:ss"* @return* @throws ParseException*/public static Date convertStr2Date(String dateStr) {SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");try {return sdf.parse(dateStr);} catch (ParseException e) {e.printStackTrace();}return null;}/*** 日期格式化* @param date* @param fmt* @return*/public static String convertDate2Format(Date date, String fmt) {return new SimpleDateFormat(StringUtils.isBlank(fmt) ?DATE_FORMAT_YMD :fmt).format(date);}}
JAVA工具类-根据身份证进行性别和年龄计算相关推荐
- (6)常用的Java工具类
目录 前言: 第一部分:常用的16个工具类 一.org.apache.commons.io.IOUtils 二.org.apache.commons.io.FileUtils 三.org.apache ...
- 干货:排名前 16 的 Java 工具类!
2019独角兽企业重金招聘Python工程师标准>>> 干货:排名前 16 的 Java 工具类! 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最 ...
- 排名前 16 的 Java 工具类
转载来自微信公众号:Java 技术栈.如有侵权,请联系作者删除!! 在 Java 中,工具类定义了一组公共方法,这篇文章将介绍 Java 中使用最频繁及最通用的 Java 工具类.以下工具类.方法按使 ...
- beanutils工具类_16 个超级实用的 Java 工具类!
在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...
- java轻量级并行工具类_16 个超级实用的 Java 工具类
原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...
- Java工具类——UUIDUtils
借用一下百度百科的解释,来看一下UUID是什么. UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Ope ...
- java 文本工具类_干货:排名前16的Java工具类
原标题:干货:排名前16的Java工具类 作者丨Java技术栈 https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Ja ...
- 干货:排名前16的Java工具类
image 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源 ...
- Java工具类——通过配置XML验证Map
Java工具类--通过配置XML验证Map 背景 在JavaWeb项目中,接收前端过来的参数时通常是使用我们的实体类进行接收的.但是呢,我们不能去决定已经搭建好的框架是怎么样的,在我接触的框架中有一种 ...
最新文章
- joomla 插入百度地图
- [转载] 七龙珠第一部——第002话 布玛没有尾巴
- 关于孵化器类型的创业公司-面试注意事项
- 在 JavaScript 中创建 JSON 对象
- oracle imp 包,oracle imp
- python读取多个文件夹下所有txt_Python实现合并同一个文件夹下所有txt文件的方法示例...
- docker开启mysql的binlog日志
- ECMAScript 函数--修改对象
- 【BERT】BERT中CLS效果真的好嘛?这篇文章告诉你答案
- java聚集_深入理解JAVA中的聚集和组合的区别与联系
- make的作用linux,Linux下./configure,make,make install的作用
- Android微信页面缓存清理,安卓用户如何彻底清理微信大量缓存?4招让你彻底解决内存烦恼...
- bing 搜索引擎 无法访问 bug
- gazebo仿真环境搭建+配置+小车运动仿真
- pycharm终端提示无法加载文件 F:\Users\Administrator\PycharmProjects\pythonProject\venv\Scripts\activate.ps1,因为在
- 李章最帅!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 世界上最大的问题,就是最大的商业机会
- java Mail使用SSl,端口465加密发送邮件配置
- 智能可穿戴设备继续火 接入大数据帮你“管”身体
- 法国电信公司Orange削减英国电信集团股份至1.33%
热门文章
- 智慧景区人员定位方案
- php 如何查看vc版本信息,PHP版本中的VC6,VC9,VC11,TS,NTS区别
- DAX: 用SWITCH函数替换嵌套IF函数
- 雨林木风最新万能GHOST系统制作教程
- Python实现MATLAB bi2de函数
- CVPR 2022 | 阿里华科提出:针对场景文本检测的视觉语言模型预训练
- android自动对焦第一次对焦,Android自定义相机实现自动对焦和手动对焦
- sRGB HDR概念性学习
- 当 update 修改数据与原数据相同时会被更新吗?
- 谷歌浏览器 android 55,谷歌浏览器55稳定版|谷歌浏览器(Chrome 55稳定版)下载v55.0.2883.87官方正式版 - 欧普软件下载...