두 날짜 사이의 일수를 입력하십시오

8053 단어 필기
입력 시기의 형식은 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")))

맞는지 모르겠지만, 늘 이상하게 느껴지니, 큰 놈이 방향을 가리키길 바래!

좋은 웹페이지 즐겨찾기