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闪烁中断。内容涵盖从时钟开启、参数计算、中断设置到服务函数编写的完整流程,重点解析了预分频值与周期值的配置方法,帮助开发者掌握硬件定时器的核心应用。
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: ...
计算机保研/考研面试题——计算机组成原理篇
本文总结了985和华五学校习计算机保研/考研常问面试时的计算机组成原理题,欢迎点赞、收藏、评论、关注
身份证号码工具类(15位,18位,10位)
解析身份证信息的工具类(获取出生日期,性别,省份)
VSCode + Clangd 配置避坑实录:从‘红波浪线’到完美代码提示的完整心路
本文详细记录了VSCode与Clangd配置过程中的常见问题及解决方案,从编译数据库生成到参数调优,帮助C++开发者快速解决代码提示失效、头文件找不到等问题,实现完美代码补全体验。重点介绍了Clangd与LLDB的集成配置及性能优化技巧,适用于Linux和跨平台开发环境。
树莓派教程(基于python编程)--入门篇
一:格式化SD卡 SD卡插入读卡器连接电脑,使用SDFormatter对SD卡进行格式化 (重装烧录也要进行着SD卡格式化操作) 二:下载官方镜像 http://downloads.raspberrypi.org/raspbian_latest 三:烧录SD卡 使用Win32DiskImager将镜像烧录到格式化后的SD卡 SD卡盘根目录(/boot)下新建一个命名为ssh的...
根据身份证号码获取身份证信息(省市县、出生日期、性别)
知道了这些就好获取信息了。为了测试,在接口中把身份证号码写死。是查询地区信息,每一个省市县的信息都在数据库存储,方法中包含的SQL是:是一个性别工具类。详情见文章最后。
硬件单板类机考复习提纲
6、 功率晶体管低导通损耗时处于的状态(饱和状态、放大状态、截止状态)(放大器的采样频率特性)总结:元器件特性(电阻、电容、二极管、三极管、晶体、晶振、MOS、磁珠等)信号质量问题产生根因(单调性、边沿过缓、毛刺、回沟、抖动等)3、 几种电容容量范围大小(超级电容、钽电容、陶瓷电容、铝电容)66、背板连接器接触设计的接触顺序(先导向、再地针、最后信号针)28、逻辑电平接口的特性(CMOS、TTL、ECL、PECL)76、差分电平(lvpecl、RS-422/485、cml)
java从身份证号码中提取出生年月日
给一个String 类型的 身份证号码,需要从这串数字中获取出生日期、性别、年龄。
避开这5个坑!Tushare金融数据获取与分析的常见错误排查指南
本文详细解析了使用Tushare进行金融数据获取与分析时常见的5个问题,包括Token失效、数据缺失、频率限制、数据一致性和性能瓶颈,并提供了实用的解决方案和优化策略。通过Python代码示例和最佳实践,帮助金融数据分析师和量化开发者高效避开这些陷阱,提升工作效率。
青岛鼎信Java开发面试题及参考答案(3万字长文,多张原理图)
MySQL 的事务特性有哪些? MySQL 事务具有四个重要特性,被称为 ACID 特性。 原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么全部执行,要么全部不执行。例如,在银行转账场景中,从账户 A 转账到账户 B,包括扣减账户 A 的金额和增加账户 B 的金额这两个操作必须作为一个整体来完成。如果在执行过程中发生错误,比如系统崩溃或者数据库出现故障,那么已经执行的部分必须全部回滚,就好像整个转账操作从未发生过一样。 一致性(Consistency):事务必须
「Java工具类」BeanCopyUtil对象复制工具类
介绍语 本号主要是Java常用关键技术点,通用工具类的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技术分享;datax、kafka、flink等大数据处理框架的技术分享。文章会不断更新,欢迎码友关注点赞收藏转发! 望各位码友点击关注,冲1000粉。后面会录制一些视频教程,图文和视频结合,比如:图书介绍网站系统、抢购系统、大数据中台系统等。技术才是程序猿的最爱,码友们冲啊 如果码友
lammps不同晶面建模方法汇总
Lammps lattice命令中的orient关键词可实现晶体的旋转和重定向,下面的命令中,111面的法线方向与y正方向重合,说明111面垂直于y轴。在有些模拟中,需要研究特定面的性质,比如研究110面,默认状态下,110面不是坐标平面,研究起来不方便,需要对模型进行旋转,如下图所示。经过旋转后,110面的法线方向与x轴正方向重合,旋转之后再重新对晶体进行切割,新模型的x面就是110面。需要注意的是,这种方法需要明确指定x、y、z轴的正方向分别对应哪三个面的法线方向,缺一不可。大家好,我是小马老师。
身份证号操作工具类
身份证号操作工具类IdCardUtils 通过身份证号获取生日日期和性别信息 public class IdCardUtils { /** * 通过身份证号获取生日日期 * * @param IdNo 身份证号 * @return String */ public static String getBirthdayFromId(String IdNo) { String tIdNo = IdNo.trim();
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
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...
温度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...
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
Java校验身份证号工具类
身份证号码有2类,15位身份证号或者18位身份证号。 地区码 第一、二位表示省(自治区、直辖市、特别行政区)。 省、直辖市代码表: 11 : 北京 12 : 天津 13 : 河北 14 : 山西 15 : 内蒙古 21 : 辽宁 22 : 吉林 23 : 黑龙江 31 : 上海 32 : 江苏 33 : 浙江 34 : 安徽 35 : 福建 ...
身份证号获取生日、性别、年龄工具类
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位身份证号 ..
JAVA身份证号码-校验工具类
JAVA身份证号码-校验工具类
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
身份证号码合法性校验工具类
【代码】身份证号码合法性校验工具类。
工具类,判断手机号,身份证号,银行卡号
import java.util.regex.Matcher; import java.util.regex.Pattern; //工具类,判断手机号,身份证号,银行卡号 public class ValidateUtil { public ValidateUtil() { } public static boolean isMobileNum(String mobile...
身份证号码工具类
身份证号码工具类 转载自:http://www.3fwork.com/b200/002695MYM017139/ 身份证工具类,可以解析出身份证号是否通过校验、性别、年龄和出生所在地 一、居民身份证的简介 居民身份证号码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。居民身份证是国家法定的证明...
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
135



被折叠的 条评论
为什么被折叠?



