最近做项目要用到判断身份证有效信息,但是又无法调用公安系统接口获取有效期、身份证号码等信息,于是在系统中做了如下处理来判断,来处理有效期规则和防止有效期、身份证号码等规则被篡改:

1)、首先判断身份证有效期截止日期是否是“长期”,若为长期且当前年份减去身份证号码里出生日期年份>=46(岁)则直接当作未过期来处理(因为仅在年龄>=46时身份证有效期才可能会为“长期”);

2)、若有效期截止日期不是长期,则继续和本地服务器当前时间判断,若有效期截止日期在本地服务器当前时间之前,返回过期:

3)、若有效期截止日期在本地服务器当前时间之后,继续以下判断:

STEP1:系统根据“主卡证件有效起始日期”及“主卡证件有效截止日期”栏位的差值计算主卡人持有的是5年/10年/20年/长期/临时的身份证,记为值A若“主卡证件有效截止日期”栏位值前4位-“主卡证件有效起始日期”栏位值前4位=5,则A=5;若“主卡证件有效截止日期”栏位值前4位-“主卡证件有效起始日期”栏位值前4位=10,则A=10;若“主卡证件有效截止日期”栏位值前4位-“主卡证件有效起始日期”栏位值前4位=20,则A=20;若“主卡证件有效截止日期”栏位值前4位-“主卡证件有效起始日期”栏位值前4位〉20,则A=长期;若“主卡证件有效截止日期”栏位值前4位-“主卡证件有效起始日期”栏位值前4位=0或=1,则A=0或=1;STEP2:系统根据主卡人的“出生日期”及“主卡证件有效起始日期”计算主卡人办理身份证时的年龄(周岁),记为值BB=(“主卡证件有效起始日期”栏位值—“出生日期”栏位值)/10000后的整数部分STEP3:若值A与值B不满足以下关系,则有效期无效;当A=5时,B<16;当A=10时,16≤B≤25;当A=20时,26≤B≤45;当A=长期时,B>=46;当A=0或A=1时,B可为任意值;STEP4:当A≠5且A≠10且A≠20且A≠长期且A≠1且A≠0时,则有效期无效;STEP5:A=5或A=10或A=20时,若“主卡证件有效起始日期”和“主卡证件有效截止日期”月日不是一一匹配,则有效期无效。

项目中身份证有效期的判断规则相关推荐

  1. 基于ESlint在项目中扩展自己的ESlint规则

    目录 效果展示 源码分析 在团队开发中,经常会碰到这样的场景: 来一个新人,碰到需求需要处理日期,但不知道项目中已经有封装好的日期库,就自己做了一个轮子 又来一个新人,碰到弹层用官方的是Modal,但 ...

  2. Java项目中如何更优雅的处理空值?

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:推荐19个github超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 来源:https://lrw ...

  3. JVM 动态年龄判断规则

    JVM 动态年龄判断规则 对象进入老年代的动态年龄判断规则(动态晋升年龄计算阈值):Minor GC 时,Survivor 中年龄 1 到 N 的对象大小超过 Survivor 的 50% 时,则将大 ...

  4. 判断大学生体侧项目中立定跳远成绩的等级

    package shiyue21; import java.util.Scanner; public class text3 { public static void main(String[] ar ...

  5. drools规则引擎的在项目中的使用手记

    需求 按照登录用户的会员等级 和签到周期 根据一定的计算规则送积分.由于之前都是通过if else去做的控制.规则变更的时候可能需要重新调整代码甚至发布服务. 由于不想再每次规则变更后需要调整代码,于 ...

  6. 设计银行项目中的注册银行用户基本信息的类,包括账户卡号、姓名、身份证号、联系电话、家庭住址。

    什么是类和对象? 类是模子,确定对象会拥有的特征(属性)和行为(方法),类的特点:类是对象的类型,具有相同属性和方法的一组对象的集合.对象是类的实例,什么是对象的属性?属性是对象拥有的各种特征:每个对 ...

  7. 今天项目中遇到的一个问题:判断新闻Id是否存在

    今天做项目中,写了个类,中间用于判断新闻是否存在.其中我的记录只有8条,Id分别为7,8,9,10,11,12,13,14,当用sql语句: private const string SQL_SELE ...

  8. java如何打开整个package_Qulice - 如何在整个项目中禁用需要package-info.java的规则?...

    我已将 pom.xml 设置为使用Qulice: com.qulice qulice-maven-plugin 0.17.3 file:${basedir}/LICENSE.txt check 我添加 ...

  9. java后台传一个对象到前台_前台判断对象中的一个布尔值_前后台分离的项目中,如何优雅的传输boolean类型的参数...

    前言:需求 这是一个Spring + Angular前后台分离的项目,目前有一个查看作业列表的功能,并且已经设置了分页和几个查询参数,如图. 现在需要增加一个已评阅和未评阅的查询功能. Work实体的 ...

最新文章

  1. 大有可为的GNN:DeepWalk
  2. 【最新合集】PAT甲级最优题解(题解+解析+代码)
  3. 数据库字段属性配置工具界面[用于代码生成]
  4. 深港澳大湾区第三次.NET技术交流会圆满成功
  5. Django笔记01-基础:一个完美主义的web框架
  6. 30 SD配置-主数据-信用管理-分配交货类型的信贷控制
  7. 目前我们所说的个人商用计算机属于,计算机组成原理试题库(大专生用,共20份,有答案)...
  8. Drupal 紧急修复已遭利用的严重 0day
  9. 判断某一点是否在三角形内
  10. c++ 读取写入txt
  11. ThinkPHP/---微信支付PC流程
  12. rl滤波器原理_滤波器的基础知识
  13. Python之路【第二十篇】:python项目之旧版抽屉新热榜
  14. 戴尔台式机装linux系统,在戴尔(Dell)台式机上安装深度Deepin系统的BIOS设置方法...
  15. 基于低代码平台(Low Code Platform)开发中小企业信息化项目
  16. vscode中检查单词是否拼写错误的插件
  17. 一文助你搞懂单纯形法
  18. 【云原生 | 19】在单台宿主机上管理Docker容器
  19. 《商用密码应用与安全性评估》第二章政策法规2.1网络空间安全形式与商业密码工作
  20. Python+Tensorflow实现检测X光图像中的新冠!

热门文章

  1. css页面一些动态效果展示
  2. Ubuntu安装Beyond Compare(五)
  3. 加油站微信小程序的设计与实现-计算机毕业设计
  4. 直通车推广有哪些容易被忽略的地方
  5. Ubuntu16.04安装gazebo8并加载模型库
  6. css渐变小案例,比较复杂的线性渐变和径向渐变做泡泡
  7. (附源码)spring boot物联网智能管理平台 毕业设计 211120
  8. 数据保护与云不离不弃,云中护航渐成行业主旋律
  9. SecureCRT 注册机使用方法
  10. Nail对话伍鸣:Conflux 香港概念下有何新叙事?