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
python 输入日期,输出n年前日期和n年后日期
最新推荐文章于 2023-12-20 11:54:59 发布