程序设计 输入一个18位的身份证号 输出TA在今年的年龄
时间: 2024-09-21 12:04:40 浏览: 62
一个计算身份证号码校验位的Python小程序
5星 · 资源好评率100%
要计算一个18位身份证号码对应的人今年的年龄,你需要知道出生日期是从第7位到第14位,共8位数字,其中前6位代表年份(如1990),后2位代表月份(如01)和日子(如01)。不过,身份证号码的最后一位是校验码,用于验证个人信息,不能用来确定具体生日。
以下是一个简单的Python代码片段,假设月份按30天来算,不考虑闰年的情况:
```python
def calculate_age(id_number):
birth_year = int(id_number[6:14])
current_year = datetime.datetime.now().year
if id_number[-1] in ['0', '1', '2']:
# 如果尾数是0、1或2,表示出生月份为01~12月,直接减去出生年份
age = current_year - birth_year
else:
# 如果尾数是3~9或X,表示出生月份为09或11月,需加一年
month = int(id_number[5]) * 10 + int(id_number[6])
if month < 13:
age = current_year - birth_year
else:
age = current_year - birth_year - 1
return age
# 假设id_number是你的输入
id_number = "123456789012345678"
age = calculate_age(id_number)
print(f"该人的年龄大约为 {age} 岁")
```
请注意,这个例子没有处理闰年的规则,实际应用中可能需要根据出生日期精确地判断是否为闰年。此外,身份证校验码的计算也需要额外的逻辑,但为了简洁起见,这里我们跳过了这部分。
阅读全文