import re
import datetime
def parse_id_card(id_card):
# 获取身份证号中的出生年月日和性别和年龄
birthday_pattern = re.compile(r'\d{6}(\d{4})(\d{2})(\d{2})\d{3}[X\d]')
match = birthday_pattern.match(id_card)
if not match:
return None
year, month, day = match.groups()
gender = int(id_card[-2]) % 2 == 1 # 1为男性,0为女性
# 计算年龄
birthday = datetime.date(int(year), int(month), int(day))
today = datetime.date.today()
age = today.year - birthday.year - ((today.month, today.day) < (birthday.month, birthday.day))
return {'birthday': str(birthday), 'age': age, 'gender': 'male' if gender else 'female'}

#调用方式
parse_id_card('340827199209013412')


通过正则表达式解析身份证号码中的出生年月日,然后通过计算当前日期和出生日期之间的年差、月差和日差来计算年龄。同时,根据身份证号码的倒数第二位数字来判断性别,1为男性,0为女性。

python解析身份证获取年龄、出生日期、性别的更多相关文章

  1. Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳

    Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳 早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下:(1)15位:1-6位为地区代码,7-8位 ...

  2. IOS 根据身份证号码获取 年龄 生日 性别

    /** 从身份证上获取年龄 18位身份证 */ -(NSString *)getIdentityCardAge:(NSString *)numberStr { NSDateFormatter *for ...

  3. sql 身份证计算年龄和性别

    IdentityNumber 是身份证号 年龄: ,), GETDATE()) / 365.25) as '推荐人年龄', 15位的身份证计算年龄: case when b.IdentityNumbe ...

  4. Java 通过身份证获取生日和性别

    /** * 通过身份证号获取生日和性别 * @param identifyNumber * @return */ private String[] getBirthAndSexByIdNo(Strin ...

  5. 基于安卓高仿how-old.net实现人脸识别估算年龄与性别

    前几段微软推出的大数据人脸识别年龄应用how-old.net在微博火了一把,它可以通过照片快速获得照片上人物的年龄,系统会对瞳孔.眼角.鼻子等27个“面部地标点"展开分析,进而得出你的“颜龄 ...

  6. Java中校验身份证号合法性(真伪),获取出生日期、年龄、性别、籍贯

    开发过程中有用的身份证号的业务场景,那么校验身份证的合法性就很重要了,另外还有通过身份证获取出生日期.年龄.性别.籍贯等信息, 下面是本人在开发中用到的关于校验身份证真伪的工具类,可以直接拿来使用,非 ...

  7. JavaScript 通过身份证号获取出生日期、年龄、性别 、籍贯

    JavaScript 通过身份证号获取出生日期.年龄.性别 .籍贯(很全) 效果图: 示例代码: //由于没有写外部JS,所以代码比较长!!! <!DOCTYPE html PUBLIC &qu ...

  8. {python}完成完整的温度转换程序 猜数字游戏(猜价格,猜年龄等) 解析身份证号、学号不同片段的含义

    完成完整的温度转换程序 while True: a = int(input("如果是华氏转摄氏,请按1\n,如果是摄氏转华氏,请按2\n")) if a==1: h = float ...

  9. Java 身份证判断性别获取年龄

    import com.alibaba.fastjson.JSON; import org.junit.Test; import java.text.SimpleDateFormat; import j ...

  10. JS通过身份证号获取生日、年龄、性别

    <script> function IdCard(UUserCard,num){ if(num==1){ //获取出生日期 birth=UUserCard.substring(6, 10) ...

随机推荐

  1. 补充:基于项目的协同过滤推荐算法(Item-Based Collaborative Filtering Recommendation Algorithms)

    前言 继续上篇博客,继续读论文. 想看上篇论文的同学可以点击这里 相关工作 In this section we briefly present some of the research litera ...

  2. nginx 根据 URL 参数引入不同的文件

    同步发布:https://blog.jijian.link/2020-06-30/nginx-import-file/ 编程世界中各种奇奇怪怪的需求都有,本次遇到一个需求:根据URL参数判断,包含 x ...

  3. rust学习笔记(2)

    类型 有符号整数(signed integers):i8.i16.i32.i64.i128 和 isize(指针宽度) 无符号整数(unsigned integers): u8.u16.u32.u64 ...

  4. 写于vue3.0发布前夕的helloworld之四

    OK.接上回到render: with(this){return _c('div',{attrs:{"id":"app"}},[_v(_s(msg))])} 接 ...

  5. sql server 与 mysql 中常用的SQL语句区别

    sql server 与 mysql 的区别   由于博主之前学过mysql,目前在学习SQL server,原来以为这两个数据库之间的sql语句应该不会有太大区别.但是学sql server(用的版 ...

  6. 解决Oracle锁表情况

    在使用Oracle数据库更新数据的时候,有两种查询方式可以修改编辑数据: select t.*,t.rowid from table t select * from table for update ...

  7. Linux下Oracle client(sqlplus)安装和配置

    分类专栏: Linux 数据库 文章标签: Linux Oracle Client sqlplus 方向键版权1.下载rpm包http://www.oracle.com/technetwork/top ...

  8. ShardingSphere分组聚合,数据异常问题

    在使用ShardingSphere分组聚合时是,出现了数据汇总不正确问题.我这里只进行了分表,未进行分库.使用的是广播查询,因为是定时任务统计,无法使用到分片键.进行分组的字段是两个 1. SQL查询 ...

  9. JDK7-时间类、时间格式化类--java进阶day07

    1.Date类:表示时间的类 1.Date常用的构造方法 . 2.Date常用的成员方法 1.getTime:返回从时间原点到对象设定的时间之间的时间 2.setTime:将对象的时间设置为setTi ...

  10. AspNetCore MVC 跨域

    通过XMLHttpRequest或者ajax去请求一个AspNetCore API接口服务时,Firefox提示我 已拦截跨源请求:同源策略禁止读取位于 http://localhost:33694/ ...