编写一个程序,要求输入本人的姓名和身份证号码,计算本人的年龄并输出。程序的输出格式:”姓名-出生日期-该年年份-实际年龄“,将程序代码和运行结果截图贴图至答题区。
时间: 2024-10-26 12:04:06 浏览: 36
由于这是一个文本交互环境,无法直接提供程序代码和运行结果的截图。但我可以为你演示如何编写一个简单的Python程序来完成这个任务。首先,你需要一个获取当前年份的方法和一个函数来验证身份证号码的有效性,然后根据身份证号码的第7位到第14位计算出生年份。以下是示例代码:
```python
import re
from datetime import datetime
def calculate_age(id_number):
birth_year = int(id_number[6:10])
current_year = datetime.now().year
if not validate_id(id_number):
return "错误的身份证号码"
age = current_year - birth_year
return f"{id_number[:-10]}-{id_number[6:10]}-{current_year}-{age}"
def validate_id(id_number):
pattern = r"^\d{15}(?:\d|X|x)$"
if not re.match(pattern, id_number):
return False
check_sum = sum(int(digit) * (i + 1) for i, digit in enumerate(id_number[:-1], 1)) % 11
last_digit = {'0': '10', '1': '9', '2': '8', '3': '7', '4': '6', '5': '5', '6': '4', '7': '3', '8': '2', '9': '1', 'X': '0', 'x': '0'}[id_number[-1]]
return str(check_sum) == last_digit
# 获取用户输入
name = input("请输入您的姓名:")
id_number = input("请输入您的身份证号码:")
age_result = calculate_age(id_number)
print(f"{name}-身份证未显示出生日期-{datetime.now().year}-{age_result}")
```
在这个例子中,我们假设身份证号码不包含具体的出生日期信息,所以输出不会包括出生日期。如果你需要完整的出生日期,你需要额外的信息来处理。
阅读全文