编写程序,从键盘输入一个用户的18位身份证号码,从中提取出生日期并输出
时间: 2024-10-14 13:04:18 浏览: 126
在编写程序时,可以从用户输入的18位中国居民身份证号码中提取出生日期,通常身份证号码的第7到14位代表出生年月日信息。下面是一个简单的Python示例:
```python
def extract_birth_date(id_number):
# 校验身份证号码是否合法
if not (len(id_number) == 18 and id_number.isdigit()):
print("输入的身份证号码不合法")
return
birth_date = id_number[6:14] # 提取出生日期部分
format_str = '%Y%m%d' # 出生日期格式
try:
born_on = datetime.datetime.strptime(birth_date, format_str)
print(f"出生日期:{born_on.strftime('%Y-%m-%d')}")
except ValueError:
print("出生日期无法识别,请检查输入的身份证号码")
# 获取用户输入
id_number = input("请输入您的18位身份证号码:")
extract_birth_date(id_number)
```
在这个程序中,我们首先检查输入的有效性,然后通过字符串切片获取出生日期,并尝试转换为datetime对象。如果转换成功,我们会按照'YYYY-MM-DD'的格式输出。
相关问题
2. 编写程序,输入一个18位的身份证号码,从中提取出生日期,并以“某人于*年*月*日出生”的格式输出。
好的,我可以帮你编写这个程序。以下是 Python 代码实现:
```python
id_number = input("请输入18位身份证号码:")
birth_year = id_number[6:10]
birth_month = id_number[10:12]
birth_day = id_number[12:14]
print("某人于{}年{}月{}日出生".format(birth_year, birth_month, birth_day))
```
代码逻辑很简单,就是利用字符串的切片功能,从身份证号码中截取出生年月日,然后使用字符串格式化输出。注意,这里假设输入的身份证号码格式正确,如果输入错误的身份证号码,程序可能会出错。
编写一个函数,提取有效的 18 位身份证号码,从中提取出生日期,并以“出生日期是**** 年**月**日-年龄为**岁”的格式输出。
你可以使用正则表达式来提取有效的18位身份证号码,并从中提取出生日期。然后,你可以使用datetime模块来计算年龄,并以指定的格式输出。以下是一个示例函数:
```python
import re
from datetime import datetime
def extract_birthdate(id_number):
pattern = r'^\d{6}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])\d{3}[\dX]$'
match = re.match(pattern, id_number)
if match:
birthdate_str = match.group(1) + match.group(2) + match.group(3)
birthdate = datetime.strptime(birthdate_str, '%Y%m%d')
age = (datetime.now() - birthdate).days // 365
output = f"出生日期是{birthdate.year}年{birthdate.month}月{birthdate.day}日-年龄为{age}岁"
return output
else:
return "无效的身份证号码"
id_number = "身份证号码"
result = extract_birthdate(id_number)
print(result)
```
请注意,你需要将"身份证号码"替换为实际的身份证号码。这个函数将提取出生日期并计算年龄,然后以指定的格式输出。如果身份证号码无效,则会返回"无效的身份证号码"。
阅读全文