python 输入日期,输出n年前日期和n年后日期

import datetime
# 定义函数:函数功能是输入一个年月日,输出n年前和n年后的日期,精确到日,输出为一个元组,第一个值是前n年,第二个值是后n年
def year_differ(year, n):  # 输入一个datetime格式日期
    year_str = str(year)  # 将日期转换成字符串格式
    year_str_year = int(year_str[0:4])  # 取出年,并转换成整型
    year_str_mon = int(year_str[5:7])  # 取出月,并转换成整型
    year_str_date = int(year_str[-2:])  # 取出日,并转换成整型

    # 输入年份的前n年计算,需要区别输入和输出的年份是闰年还是平年
    year_str_year_new_before = year_str_year - n
    if year_str_mon == 2 and year_str_date == 29:
        if year_str_year_new_before % 4 == 0:
            before_year_str = str(year_str_year_new_before) + str(year_str_mon) + str(year_str_date)
        else:
            year_str_date_new = year_str_date - 1
            before_year_str = str(year_str_year_new_before) + str(year_str_mon) + str(year_str_date_new)
    else:
        before_year_str = str(year_str_year_new_before) + str(year_str_mon) + str(year_str_date)

    # 输入年份的后n年计算,需要区别输入和输出的年份是闰年还是平年
    year_str_year_new_after = year_str_year + n
    if year_str_mon == 2 and year_str_date == 29:
        if year_str_year_new_after % 4 == 0:
            after_year_str = str(year_str_year_new_after) + str(year_str_mon) + str(year_str_date)
        else:
            year_str_date_new = year_str_date - 1
            after_year_str = str(year_str_year_new_after) + str(year_str_mon) + str(year_str_date_new)
    else:
        after_year_str = str(year_str_year_new_after) + str(year_str_mon) + str(year_str_date)
    # 前n年和后n年由字符串格式转换成datetime格式
    before_year = datetime.datetime.strptime(before_year_str, '%Y%m%d').date()
    after_year = datetime.datetime.strptime(after_year_str, '%Y%m%d').date()
    # 输出前n年和后n年的元组
    return  before_year,after_year
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值