根据身份证号(18/15)计算年龄、出生日期、性别
#region 根据身份证号计算年龄、出生日期、性别
/// <summary>
/// 根据身份证获取身份证信息
/// 18位身份证
/// 0出生年月日(7~14位)
/// 1性别
/// 15位身份证
/// 0出生年份(7~8位年,9~10位为出生月份,11~12位为出生日期
/// 1顺序号(13~15位),并能够判断性别,奇数为男,偶数为女0
/// </summary>
/// <param name="cardId"></param>
/// <returns></returns>
public static string[] GetCardIdInfo(string cardId)
{
string[] info = new string[4];
System.Text.RegularExpressions.Regex regex = null;
if (cardId.Length == 18)
{
regex = new Regex(@"^\d{17}(\d|x)$");
if (regex.IsMatch(cardId))
{
info.SetValue(cardId.Substring(6, 8), 0);
info.SetValue(Convert.ToInt32(cardId.Substring(14, 3)) % 2 != 0 ? "男" : "女", 1);
info.SetValue(Convert.ToInt32(cardId.Substring(14, 3)) % 2 != 0 ? "1" : "2", 2);
info.SetValue(CalculateAge(cardId.Substring(6, 8)), 3);
}
}
else if (cardId.Length == 15)
{
regex = new Regex(@"^\d{15}");
if (regex.IsMatch(cardId))
{
int cardYear = Convert.ToInt32(cardId.Substring(6, 2));
int nowYear = Convert.ToInt32(DateTime.Now.Year.ToString().Substring(2, 2));
if (cardYear < nowYear)
{
info.SetValue("20" + cardId.Substring(6, 6), 0);
}
else {
info.SetValue("19" + cardId.Substring(6, 6), 0);
}
info.SetValue(Convert.ToInt32(cardId.Substring(12, 3)) % 2 != 0 ? "男" : "女", 1);
info.SetValue(Convert.ToInt32(cardId.Substring(12, 3)) % 2 != 0 ? "1" : "2", 2);
info.SetValue(CalculateAge(info[0]), 3);
}
}
return info;
}
/// <summary>
/// 根据出生日期,计算精确的年龄
/// </summary>
/// <param name="birthDate">生日</param>
/// <returns></returns>
public static string CalculateAge(string birthDate)
{
int birthYear = Convert.ToInt32(birthDate.Substring(0, 4));
int birthMonth = Convert.ToInt32(birthDate.Substring(4, 2));
int birthDay = Convert.ToInt32(birthDate.Substring(6, 2));
int age = DateTime.Now.Year - birthYear;
//再考虑月、天的因素
if (DateTime.Now.Month < birthMonth || (DateTime.Now.Month == birthMonth && DateTime.Now.Day < birthDay))
{
age--;
}
return age.ToString();
}
#endregion
根据身份证号(18/15)计算年龄、出生日期、性别相关推荐
- 输入身份证号自动算出年龄,出生日期,性别
项目场景: 输入身份证号自动计算出年龄,出生日期,性别 解决方案: 1.定义需要的属性 2.以下是相关代码 3.,然后我这里的代码绑定的事件是光标离开输入框触发,这个根据自己的需求更改就行 注:可以用 ...
- 输入身份证号和年份计算年龄
输入一个身份证号码(15位和18位)和一个年份,计算现在的年龄(忽略非法参数) eg:610618199001020065 2011 输出:21 代码: package 华为机试题; /*** @au ...
- 数据库SQL函数 根据身份证号/出生年月 精确计算年龄(Oracle/MySQL)
<问题> 根据身份证号统计年龄(18位) Oracle <思路> (1)Substr()函数在Oracle使用中表示被劫取的字符串表达式,截取字符串的内容. (2)To_dat ...
- 通过身份证号提取性别_身份证号提取生日、年龄、性别、籍贯,最简单的方法!...
上一期,Amy跟大家分享了如何从身份证号中提取出生日期.今天我们继续来讲如何提取年龄.性别.籍贯. 身份证号提取年龄 ✦思路:在E2单元格输入公式"=DATEDIF(D2,TODAY(),& ...
- js技术输入框中输入身份证号自动带出年龄,生日,性别
目录 1.分析: 2.页面设计: 3.js技术让我们的输入框回显数据: 4.页面展示结果: 1.分析: 1.问题场景:在写项目的时候遇到了这个问题自己觉得挺有意思的在这里我更大家分享一下 2.问题分析 ...
- 身份证校验(//身份证号合法性验证 //支持15位和18位身份证号//支持地址编码、出生日期、校验位验证)
window.checkIdNumber=(function () {var vcity = {11: "北京", 12: "天津", 13: "河北 ...
- mysql 怎么用SQL语句将老身份证号15位补位到新身份证号18位
一.15位的身份证和18位的身份证的区别是什么? 只有15位号码的就是第一代身份证,而18位号码的则是第二代身份证.15位的身份证和18位的身份证的区别是:第二代身份证比第一代身份证增加了出生年份中的 ...
- 根据身份证号获取相关信息(籍贯、性别、出生日期...)
根据身份证号获取相关信息(籍贯.性别.出生日期-) 首先我的只是个demo,身份证号也是写死的.仅供参考! 通过访问其他HTTP接口,将身份证号当作参数.调用接口返回相关信息 效果展示: **接口地址 ...
- 设计一个学校在册人员类(Person)。数据成员包括身份证号(IdPerson)、姓名(Name)、性别(Sex)、生日(Birth-day)和家庭住址(HomeAddress)。成员函数包括人员信息
在1设计一个学校在册人员类(Person).数据成员包括身份证号(IdPerson).姓名(Name).性别(Sex).生日(Birth-day)和家庭住址(HomeAddress).成员函数包括人员 ...
- python 根据身份证号计算年龄和性别_excel如何根据身份证号计算男女出生日期、性别和年龄?分享了!...
工作中,有时需要从身份证号中提取性别.出生日期.年龄等.如果手工统计,不仅容易出错,还耗时耗力.春暖花开的时候,有那时间不如出去踏青散步,赏花游玩. 下面小编为大家分享一种方法,使用Excel函数轻松 ...
最新文章
- 利用NVIDIA NGC的TensorRT容器优化和加速人工智能推理
- C++开发要注意的规范?
- 基于webpack3.x从0开始搭建React开发环境
- gulp启动项目报错
- Tomcat和eclipse的整合
- X86服务器虚拟化技术CNware-WinServer
- js编程中常用术语-中英对照
- 如果觉得上面太正式,请看小红书风格的“从数字化转型到智能化转型”
- java判断object对象为不为空
- 【Multisim 14.0】软件安装教程
- 辨析三种一致性:缓存一致、内存一致、数据一致
- cassandra 3.x官方文档(4)---分区器
- Pycharm + python 爬虫简单爬取网站数据
- 云课堂计算机测试答案,2020智慧职教云课堂计算机应用基础答案最新最全章节测试答案...
- 度小满数据开发面试真题2
- java super父类的父类_java super关键字,super访问父类成员详解
- 每周推荐阅读2013Q2汇总
- 算力智库虚拟数字人报告正式发布,独家解读从Web2到Web3,虚拟人的价值演进
- 写作社区平台汇总(自媒体运营的素材来源和推文发送地)
- 中国大学moocpython笔记_中国大学MOOC慕课2020年用Python玩转数据题目答案