输入两个日期求相隔的天数

    技术2022-08-03  90

    输入时期的格式为: 2020-5-20

    import datetime def is_runyear(years): # 判断一个年份是否是闰年 return years%4 == 0 and years%100 != 0 or years%400 == 0 def for_str_data(data): # 格式化字符串,将字符串转化为列表"2018-1-1"->[2018,1,1] return data.split('-') def dayofyear(str_data): # 利用datetime模块,求得一个datetime对象 list_data = for_str_data(str_data) date = datetime.date(year=int(list_data[0]),month=int(list_data[1]),day=int(list_data[2])) return date def add_data(str_data1,str_data2): # 实现日期之间的日隔 year1 = for_str_data(str_data1)[0] # 得到第一个年份 year2 = for_str_data(str_data2)[0] # 得到第二个年份 if year1 == year2: # 同年不同天,同一年里的两个日期的日隔 return abs(dayofyear(str_data1) - dayofyear(str_data2)).days # 由两个日期(datetime对象)相减得到日隔 elif year1 > year2 : add_data(str_data2,str_data1) # 排序,避免异常 else: data1 = (dayofyear(year1+'-12-31')-dayofyear(str_data1)).days data2 = (dayofyear(str_data2)-dayofyear(year2+'-1-1')).days data3 = 0 for i in range(1,int(year2)-int(year1)): if is_runyear(int(year1)+i): data3 += 365 else: data3 += 366 return data1 + data2 +data3 print((add_data("2020-1-19","2021-1-9")))

    也不知道对不对,总感觉奇怪,希望有大佬指点迷津!

    Processed: 0.011, SQL: 9