Python实现身份证解析,获取出生年月日、年龄和性别

根据用户输入的一个18位合法身份证号,输出用户的出生年月日、年龄和性别[第7、8、9、10位出生年份(四位数);第11、第12位为出生月份;第13、14为代表出生日期;第17位代表性别,奇数为男,偶数为女]

代码为: 

import datetime
ID = input("输入一个有效的身份证号:")
today = datetime.datetime.now()
CY = today.year        #今天的年份
CM = today.month       #今天的月份
CD = today.day         #今天的日期
CMD = 100 * CM + CD    #公式
BY = int(ID[6:10])     #输入的身份证中的年份
BMD = int(ID[10:14])   #输入的身份证中的月份和日期
delta = CMD - BMD
if int(ID[16])%2==0:
    print("您出生于{}年{}月{}日,性别为女".format(ID[6:10],ID[10:12],ID[12:14]))
    if delta > 0:
        print("年龄为:",CY - BY,"岁")
    elif delta < 0:
        print("年龄为:",CY - BY - 1,"岁")
    elif delta == 0:
        print("今天刚好是您",CY - BY,"岁的生日")
else:
    print("您出生于{}年{}月{}日,性别为男".format(ID[6:10],ID[10:12],ID[12:14]))
    if delta > 0:
        print("年龄为:",CY - BY,"岁")
    elif delta < 0:
        print("年龄为:",CY - BY - 1,"岁")
    elif delta == 0:
        print("今天刚好是您",CY - BY,"岁的生日")

物联沃分享整理
物联沃-IOTWORD物联网 » Python实现身份证解析,获取出生年月日、年龄和性别

发表评论