身份证号工具类

JAVA版身份证获取性别、出生日期及年龄 NULL 博文链接:https://bijian1013.iteye.com/blog/2184409 立即下载
public class IDCardUtil {
    /**
     * 15位身份证号
     */
    private static final Integer FIFTEEN_ID_CARD = 15;
    /**
     * 18位身份证号
     */
    private static final Integer EIGHTEEN_ID_CARD = 18;
    private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

    /**
     * 根据身份证号获取性别
     *
     * @param IDCard
     * @return
     */
    public static Integer getSex(String IDCard) {
        Integer sex = null;
        if (IDCard != null) {
            //15位身份证号
            if (IDCard.length() == FIFTEEN_ID_CARD) {
                if (Integer.parseInt(IDCard.substring(14, 15)) % 2 == 0) {
                    sex = 1;
                } else {
                    sex = 0;
                }
                //18位身份证号
            } else if (IDCard.length() == EIGHTEEN_ID_CARD) {
                // 判断性别
                if (Integer.parseInt(IDCard.substring(16).substring(0, 1)) % 2 == 0) {
                    sex = 1;
                } else {
                    sex = 0;
                }
            }
        }
        return sex;
    }

    /**
     * 根据身份证号获取年龄
     *
     * @param IDCard
     * @return
     */
    public static Integer getAge(String IDCard) {
        Integer age = 0;
        Date date = new Date();
        if (IDCard != null) {
            //15位身份证号
            if (IDCard.length() == FIFTEEN_ID_CARD) {
                // 身份证上的年份(15位身份证为1980年前的)
                String uyear = "19" + IDCard.substring(6, 8);
                // 身份证上的月份
                String uyue = IDCard.substring(8, 10);
                // 当前年份
                String fyear = format.format(date).substring(0, 4);
                // 当前月份
                String fyue = format.format(date).substring(5, 7);
                if (Integer.parseInt(uyue) <= Integer.parseInt(fyue)) {
                    age = Integer.parseInt(fyear) - Integer.parseInt(uyear) + 1;
                    // 当前用户还没过生
                } else {
                    age = Integer.parseInt(fyear) - Integer.parseInt(uyear);
                }
                //18位身份证号
            } else if (IDCard.length() == EIGHTEEN_ID_CARD) {
                // 身份证上的年份
                String year = IDCard.substring(6).substring(0, 4);
                // 身份证上的月份
                String yue = IDCard.substring(10).substring(0, 2);
                // 当前年份
                String fyear = format.format(date).substring(0, 4);
                // 当前月份
                String fyue = format.format(date).substring(5, 7);
                // 当前月份大于用户出身的月份表示已过生日
                if (Integer.parseInt(yue) <= Integer.parseInt(fyue)) {
                    age = Integer.parseInt(fyear) - Integer.parseInt(year) + 1;
                    // 当前用户还没过生日
                } else {
                    age = Integer.parseInt(fyear) - Integer.parseInt(year);
                }
            }
        }
        return age;
    }

    /**
     * 获取出生日期  yyyy年MM月dd日
     *
     * @param IDCard
     * @return
     */
    public static String getBirthday(String IDCard) {
        String birthday = "";
        String year = "";
        String month = "";
        String day = "";
        if (IDCard != null) {
            //15位身份证号
            if (IDCard.length() == FIFTEEN_ID_CARD) {
                // 身份证上的年份(15位身份证为1980年前的)
                year = "19" + IDCard.substring(6, 8);
                //身份证上的月份
                month = IDCard.substring(8, 10);
                //身份证上的日期
                day = IDCard.substring(10, 12);
                //18位身份证号
            } else if (IDCard.length() == EIGHTEEN_ID_CARD) {
                // 身份证上的年份
                year = IDCard.substring(6).substring(0, 4);
                // 身份证上的月份
                month = IDCard.substring(10).substring(0, 2);
                //身份证上的日期
                day = IDCard.substring(12).substring(0, 2);
            }
            birthday = year + "/" + month + "/" + day + "/";
        }
        return birthday;
    }

}
根据身份证号码获取性别、出生日期、籍贯省市 立即下载

相关推荐

15. GD32E230定时器实战:基于TIMER5的1秒LED闪烁中断配置详解

本文详细讲解了如何在GD32E230微控制器上配置TIMER5定时器,实现精准的1秒LED闪烁中断。内容涵盖从时钟开启、参数计算、中断设置到服务函数编写的完整流程,重点解析了预分频值与周期值的配置方法,帮助开发者掌握硬件定时器的核心应用。

weixin_29092787的博客 135

JAVA通过身份证号码获取出生年月、年龄及性别

import org.apache.commons.lang.StringUtils; import java.text.SimpleDateFormat; import java.util.Date; /** * @Description:身份证号的util * @Author: * @Date: Created in 11:26 2019-03-27 * @Modified By: ...

蓝色格子ren的博客 1万+

计算机保研/考研面试题——计算机组成原理篇

本文总结了985和华五学校习计算机保研/考研常问面试时的计算机组成原理题,欢迎点赞、收藏、评论、关注

安晴晚风的博客 7547

身份证号码工具类(15位,18位,10位)

解析身份证信息的工具类(获取出生日期,性别,省份)

沉闷萝卜的博客 3961

VSCode + Clangd 配置避坑实录:从‘红波浪线’到完美代码提示的完整心路

本文详细记录了VSCode与Clangd配置过程中的常见问题及解决方案,从编译数据库生成到参数调优,帮助C++开发者快速解决代码提示失效、头文件找不到等问题,实现完美代码补全体验。重点介绍了Clangd与LLDB的集成配置及性能优化技巧,适用于Linux和跨平台开发环境。

weixin_28829479的博客 491

树莓派教程(基于python编程)--入门篇

一:格式化SD卡 SD卡插入读卡器连接电脑,使用SDFormatter对SD卡进行格式化 (重装烧录也要进行着SD卡格式化操作) 二:下载官方镜像 http://downloads.raspberrypi.org/raspbian_latest 三:烧录SD卡 使用Win32DiskImager将镜像烧录到格式化后的SD卡 SD卡盘根目录(/boot)下新建一个命名为ssh的...

qq_42109746的博客 6万+

根据身份证号码获取身份证信息(省市县、出生日期、性别)

知道了这些就好获取信息了。为了测试,在接口中把身份证号码写死。是查询地区信息,每一个省市县的信息都在数据库存储,方法中包含的SQL是:是一个性别工具类。详情见文章最后。

XuDream的博客 4508

硬件单板类机考复习提纲

6、 功率晶体管低导通损耗时处于的状态(饱和状态、放大状态、截止状态)(放大器的采样频率特性)总结:元器件特性(电阻、电容、二极管、三极管、晶体、晶振、MOS、磁珠等)信号质量问题产生根因(单调性、边沿过缓、毛刺、回沟、抖动等)3、 几种电容容量范围大小(超级电容、钽电容、陶瓷电容、铝电容)66、背板连接器接触设计的接触顺序(先导向、再地针、最后信号针)28、逻辑电平接口的特性(CMOS、TTL、ECL、PECL)76、差分电平(lvpecl、RS-422/485、cml)

2303_79562407的博客 1万+

java从身份证号码中提取出生年月日

给一个String 类型的 身份证号码,需要从这串数字中获取出生日期、性别、年龄。

WS_2017的博客 6148

避开这5个坑!Tushare金融数据获取与分析的常见错误排查指南

本文详细解析了使用Tushare进行金融数据获取与分析时常见的5个问题,包括Token失效、数据缺失、频率限制、数据一致性和性能瓶颈,并提供了实用的解决方案和优化策略。通过Python代码示例和最佳实践,帮助金融数据分析师和量化开发者高效避开这些陷阱,提升工作效率。

x2y3z4a5b的博客 1037

青岛鼎信Java开发面试题及参考答案(3万字长文,多张原理图)

MySQL 的事务特性有哪些? MySQL 事务具有四个重要特性,被称为 ACID 特性。 原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么全部执行,要么全部不执行。例如,在银行转账场景中,从账户 A 转账到账户 B,包括扣减账户 A 的金额和增加账户 B 的金额这两个操作必须作为一个整体来完成。如果在执行过程中发生错误,比如系统崩溃或者数据库出现故障,那么已经执行的部分必须全部回滚,就好像整个转账操作从未发生过一样。 一致性(Consistency):事务必须

大模型大数据攻城狮的专栏 1089

「Java工具类」BeanCopyUtil对象复制工具类

介绍语 本号主要是Java常用关键技术点,通用工具类的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技术分享;datax、kafka、flink等大数据处理框架的技术分享。文章会不断更新,欢迎码友关注点赞收藏转发! 望各位码友点击关注,冲1000粉。后面会录制一些视频教程,图文和视频结合,比如:图书介绍网站系统、抢购系统、大数据中台系统等。技术才是程序猿的最爱,码友们冲啊 如果码友

Java Farmer 1万+

lammps不同晶面建模方法汇总

Lammps lattice命令中的orient关键词可实现晶体的旋转和重定向,下面的命令中,111面的法线方向与y正方向重合,说明111面垂直于y轴。在有些模拟中,需要研究特定面的性质,比如研究110面,默认状态下,110面不是坐标平面,研究起来不方便,需要对模型进行旋转,如下图所示。经过旋转后,110面的法线方向与x轴正方向重合,旋转之后再重新对晶体进行切割,新模型的x面就是110面。需要注意的是,这种方法需要明确指定x、y、z轴的正方向分别对应哪三个面的法线方向,缺一不可。大家好,我是小马老师。

lammps_jiayou的博客 357

身份证号操作工具类

身份证号操作工具类IdCardUtils 通过身份证号获取生日日期和性别信息 public class IdCardUtils { /** * 通过身份证号获取生日日期 * * @param IdNo 身份证号 * @return String */ public static String getBirthdayFromId(String IdNo) { String tIdNo = IdNo.trim();

weixin_45698637的博客 262

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java 根据身份证号计算周岁年龄 工具类

package com.bigtreefinance.limit.utils; import java.util.Calendar; /** * 根据身份证号计算周岁年龄 * @author yaodd * @date 2020-03-08 * @version v1.2.1 */ public class GetAgeUtil { public static String evaluate(String idCardNo) { if (idCardNo == nu...

一切皆有可能 1367

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

身份证号校验工具类

package com.just.common.util; import com.just.common.constant.RegexConstant; import com.just.common.entity.IdCardInfo; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org...

为小寒的安辰努力 498

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java校验身份证号工具类

身份证号码有2类,15位身份证号或者18位身份证号。 地区码 第一、二位表示省(自治区、直辖市、特别行政区)。 省、直辖市代码表: 11 : 北京 12 : 天津 13 : 河北 14 : 山西 15 : 内蒙古 21 : 辽宁 22 : 吉林 23 : 黑龙江 31 : 上海 32 : 江苏 33 : 浙江 34 : 安徽 35 : 福建 ...

susu1083018911的博客 1301

身份证号获取生日、性别、年龄工具类

import org.apache.commons.lang3.StringUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 身份证号工具类 * * @author zxl * @date 2021/04/09 10:34 **/ public class IDCardUtil { /** * 15位身份证号 ..

qq_42319005的博客 375

JAVA身份证号码-校验工具类

JAVA身份证号码-校验工具类

Zhuxiaoyu_91的博客 1619

Java的身份证号码工具类

<br />Java的身份证号码工具类  001/** 002 * Copyright (C) 2009-2010 Yichuan, Fuchun All rights reserved. 003 * Licensed to the Apache Software Foundation (ASF) under one or more 004 * contributor license agreements. See the NOTICE file distributed with 005 * this wo

勤奋、敬业、执着、忘我 1583

身份证号码合法性校验工具类

【代码】身份证号码合法性校验工具类。

九离的博客 1085

工具类,判断手机号,身份证号,银行卡号

import java.util.regex.Matcher; import java.util.regex.Pattern; //工具类,判断手机号,身份证号,银行卡号 public class ValidateUtil { public ValidateUtil() { } public static boolean isMobileNum(String mobile...

hit、run 627

身份证号码工具类

身份证号码工具类 转载自:http://www.3fwork.com/b200/002695MYM017139/ 身份证工具类,可以解析出身份证号是否通过校验、性别、年龄和出生所在地 一、居民身份证的简介 居民身份证号码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。居民身份证是国家法定的证明...

weixin_30885111的博客 2467

Java根据身份证号获取生日、年龄、性别以及籍贯的工具类

Java根据身份证号获取生日、年龄、性别以及籍贯的工具类 参考 java8 通过18位身份证号提取用户信息(年龄,生日,姓别) 在java中实现通过身份证号码判断籍贯的小工具类 具体代码 import org.apache.commons.lang3.StringUtils; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import

weixin_44324815的博客 5120
上一篇: MybatisPlus拦截器
下一篇: http工具类
NewBee.Mu
博客等级 码龄8年 602粉丝 379原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值