Python实现身份证号码有效期计算

2023-04-03 00:00:00 计算 身份证号码 有效期

要计算中国身份证号码的有效期,可以先提取出号码中的出生日期,再根据身份证规则计算出有效期。以下是Python实现身份证号码有效期计算的示例代码:

import datetime

def calculate_id_expiry(id_num):
    # 获取出生日期,身份证号码前14位为出生日期
    birthdate_str = id_num[6:14]
    birthdate = datetime.datetime.strptime(birthdate_str, '%Y%m%d').date()

    # 计算有效期,18岁以下为8年,18岁及以上为10年
    today = datetime.date.today()
    age = (today - birthdate) // datetime.timedelta(days=365)
    if age < 18:
        expiry_years = 8
    else:
        expiry_years = 10

    # 计算有效期结束日期
    expiry_date = birthdate.replace(year=birthdate.year + expiry_years) - datetime.timedelta(days=1)

    return expiry_date

# 示例用法
id_num = '360428199001012345'
expiry_date = calculate_id_expiry(id_num)
print(expiry_date.strftime('%Y-%m-%d'))

在上面的代码中,calculate_id_expiry函数接收一个身份证号码作为输入,返回该身份证的有效期结束日期。函数首先提取出生日期,然后计算出有效期的年数。最后,使用出生日期和有效期的年数计算出有效期结束日期。在示例用法中,我们将一个身份证号码传递给calculate_id_expiry函数,并打印出有效期结束日期。

相关文章