Python请输入你个人的身份证号码

请输入你个人的身份证号码,提取出生日期,并计算年龄。比如输入的身份证号码是“430406200501031727”,则提取的出生日期是“2005年1月3日”,年龄为18岁。
[输出样例]
请输入您的18位身份证号码:430406200501031727
您的出生日期是2005/01/03
您的年龄是18岁。

import datetime
id_card = input("请输入您的18位身份证号码:")
birth_year = int(id_card[6:10])
birth_month = int(id_card[10:12])
birth_day = int(id_card[12:14])
birth_date = datetime.datetime(birth_year, birth_month, birth_day)
now_date = datetime.datetime.now()
age = (now_date - birth_date) // datetime.timedelta(days=365)
print("您的出生日期是%d/%02d/%02d" % (birth_year, birth_month, birth_day))
print("您的年龄是%d岁。" % age)

该回答引用chatgpt:


import re
from datetime import datetime

# 输入身份证号码
id_number = input("请输入您的18位身份证号码:")

# 使用正则表达式提取出生日期信息
match = re.match(r"(\d{4})(\d{2})(\d{2})", id_number[6:14])
if match:
    birth_year = int(match.group(1))
    birth_month = int(match.group(2))
    birth_day = int(match.group(3))
    birth_date = datetime(birth_year, birth_month, birth_day)
    today_date = datetime.today()

    # 计算年龄
    age = today_date.year - birth_date.year - ((today_date.month, today_date.day) < (birth_date.month, birth_date.day))

    # 输出结果
    print("您的出生日期是{}年{}月{}日".format(birth_year, birth_month, birth_day))
    print("您的年龄是{}岁。".format(age))
else:
    print("无法提取出生日期信息。")

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
以下是Python实现的代码,可以提取身份证号码中的出生日期和计算年龄:

import datetime

id_card = input("请输入您的18位身份证号码:")
birth_date_str = id_card[6:14]  # 身份证号码中出生日期的位置
birth_date = datetime.datetime.strptime(birth_date_str, '%Y%m%d').date()  # 将出生日期字符串转换为日期类型
today_date = datetime.date.today()  # 获取当前日期
age = today_date.year - birth_date.year - ((today_date.month, today_date.day) < (birth_date.month, birth_date.day))

print("您的出生日期是{}年{}月{}日".format(birth_date.year, birth_date.month, birth_date.day))
print("您的年龄是{}岁。".format(age))

在这个代码中,我们首先通过 input 函数获取用户输入的身份证号码。然后,我们从身份证号码中提取出生日期,这里使用了字符串切片操作,取出号码中出生日期的位置,即从第7个字符开始到第14个字符,共8个字符,对应年月日的各个数字。

为了计算年龄,我们使用 datetime 模块将出生日期字符串转换为日期类型,并使用 date.today() 函数获取当前日期。然后,我们使用当前年份减去出生年份,再减去一个调整值,即 (today_date.month, today_date.day) < (birth_date.month, birth_date.day),这个调整值是因为如果当前日期的月份和日份还未达到出生日期的月份和日份,那么年龄应该减去1岁。

最后,我们使用 print 函数输出提取出的出生日期和计算出的年龄。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢