Java通过身份证号 计算退休日期 例男60岁,女55岁退休

直接上代码

 /*** 根据身份证号计算退休日期* @return*/@ApiOperation("根据身份证号计算账号有效期")@ApiImplicitParams({@ApiImplicitParam(name = "cardId", value = "传身份证号", required = true, paramType = "query", dataType = "String")})@GetMapping(value = "/getRetirementDate/{cardId}")public Date getRetirementDate(@PathVariable String cardId) {// 判断用户身份证号为18位时if (cardId.length() == 18) {// 根据用户的身份证号得到用户出生日期字符串String birthdayString = cardId.substring(6).substring(0, 8);// 获取用户出生年份String year = birthdayString.substring(0, 4);// 获取用户出生月份String month = birthdayString.substring(4, 6);// 获取用户出生日期String day = birthdayString.substring(6, 8);// 拼接 例1990-05-27String birthday = year+"-"+month+"-"+day;// 转Date类型Date date = DateUtils.parseDate(birthday);// 获取当前时间Calendar cal = Calendar.getInstance();// 把时间设置为该用户的出生日期cal.setTime(date);// 判断用户的性别 这里是取的身份证倒数第二位判断性别if (Integer.parseInt(cardId.substring(16).substring(0, 1)) % 2 == 0) {// 女 设置退休日期为出生日期后55年cal.add(Calendar.YEAR, 55);return cal.getTime();} else {// 男 设置退休日期为出生日期后60年cal.add(Calendar.YEAR, 60);return cal.getTime();}// 判断身份证号为15位时} else if (cardId.length() == 15) {// 获取用户出生年份String year = "19" + cardId.substring(6, 8);// 获取用户出生月份String month = cardId.substring(8, 10);// 获取用户出生日期String day = cardId.substring(10, 12);// 拼接 例1990-05-27String birthday = year+"-"+month+"-"+day;// 转Date类型Date date = DateUtils.parseDate(birthday);// 获取当前时间Calendar cal = Calendar.getInstance();// 把时间设置为该用户的出生日期cal.setTime(date);// 判断用户的性别 同上if (Integer.parseInt(cardId.substring(14, 15)) % 2 == 0) {// 女 设置退休日期为出生日期后55年cal.add(Calendar.YEAR, 55);return cal.getTime();} else {// 男 设置退休日期为出生日期后60年cal.add(Calendar.YEAR, 60);return cal.getTime();}} else {// 如果代码走到了这里,说明身份证号格式不正确,看着返吧return null;}}

然后方法里用了DateUtils.parseDate(birthday)方法,这里放一下
因为我这是有一个专门的工具类叫DateUtils的,所以你们可以忽略DateUtils这个类名,直接用parseDate方法

      /*** 日期型字符串转化为日期 格式*/public static Date parseDate(Object str) {if (str == null) {return null;}try {return parseDate(str.toString(), parsePatterns);} catch (ParseException e) {return null;}}

以上

通过身份证号 计算退休日期 例男60岁,女55岁退休相关推荐

  1. 根据身份证号中的日期判断某人是否已满18岁及是否已满60岁

    在网上看到一个这样的算法,初时感觉很巧妙, if (DateTime.Now.Subtract(time).Days / 365 >60) 后来觉得似乎有问题: 比如说:假定今天是2014年7月 ...

  2. Python根据身份证号计算年龄和退休时间并保存Excel文件

    封面图片:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 图书详情: 用书教师可以联系董老师获取教学大纲.课件.源码.教案.考试系统等配 ...

  3. EXCEL表格-根据身份证号计算性别、年龄(IF、MOD函数)

    ❤关注我,不迷路❤ 点击进入EXCEL综合应用场景专栏 本篇文章将介绍如何根据身份证号来计算出年龄.性别,先来讲解一些基础知识: 身份证号共18位,其中: (1)前1.2位数字表示:所在省份的代码: ...

  4. sql server 根据身份证号计算出生日期和年龄的存储过程

    我这边有一个业务,需要客户填写身份证号,自动计算他的出生日期和年龄 在sql中,具体的存储过程实现是这样的: /******************************************** ...

  5. js中如何通过身份证号计算出生日期和年龄

    在html中有如下标签 身份证号:<input type="text" id="Gra_IDCard" onChange="IDCardChan ...

  6. java根据身份证号计算持有者年龄--超容易

    主要思路很简单: 1.通过当前年份和用户出生年份相减计算出age :用户当年还没过生的话,age要减一. 2.在身份证截取根据"月日"拼接成开头可以为0的四位数int值.根据当前月 ...

  7. oracle 导出身份证号_oracle 根据身份证号计算出生日期

    1.情景展示 如何根据身份证号推算出出生日期? 2.解决方案 --根据身份证号计算出生日期 SELECT DECODE(LENGTH(ID_CARD), 18, SUBSTR(ID_CARD, 7, ...

  8. 根据出生日期计算年龄或者根据身份证号计算年龄

    可以把这个方法写成一个工具类方便以后在项目中调用,以下是写好的方法可以直接拿去用 注:(此方法计算的是虚岁年龄不是实岁年龄) //根据身份证号计算年龄 //身份证号 //String certNo = ...

  9. PHP根据身份证号计算年龄和年龄分段

    PHP根据身份证号计算年龄和年龄分段 /*** @param $id 身份证号* @return string* 根据身份证号判断年龄和年龄分段*/public function getAgeByID ...

最新文章

  1. 更改sybase下设备名
  2. 201521123024 《Java程序设计》 第九周学习总结
  3. NSString之Format
  4. 计算机硬件市场调查实验报告,计算机组装与维护实训报告范例.doc
  5. select 选择器php,php – 选择laravel 5.4中下拉列表的选定值
  6. iOS 苹果app提交 ITC.apps.validation.prerelease_build_missing
  7. lighttpd,thttpd,shttpd - 轻量级WebServer介绍
  8. windows查询每个线程占用的内存_C#多线程
  9. 三种方法实现轮播图配置,史上最简方法~
  10. PyTorch实战福利从入门到精通之二——Tensor
  11. 2020 r7000 龙腾屏幕_R7000和R7000P到底有什么差别,差多少?
  12. 【初级03】java JVM核心技术(3): jvm调优
  13. Android框架揭秘-Android Binder IPC笔记
  14. 【最全】BliBli,视频下载方法汇总!【最新】
  15. 动手学深度学习(使用Pytorch)网址收藏
  16. VMWare虚拟机开启失败(模块“Disk“启动失败)
  17. python制作slack bot聊天机器人02
  18. java去除数组重复元素的四种方法
  19. Flask 框架设计模式
  20. 如何快速搭建个人网站(服务器配置篇)

热门文章

  1. 教你如何全面认识磁盘阵列柜
  2. Android gradle统一依赖版本:Composing builds
  3. (四)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 安装Tomcat和JDK 以及 Nginx与Tomcat整合
  4. Spring Container Extension
  5. java内存可视化_JVM系列(六)、可视化工具介绍
  6. 【冰糖R语言】(串列)对象不能强制改变成‘double‘种类
  7. MDG convenience API示例代码
  8. jquery 常用选择器和方法以及遍历(超详细)
  9. 密码基础知识(3)---对称密码体制
  10. 关于笔记本电池显示未充电的