百练 / 2018计算机学科夏令营上机考试 A:计算两个日期之间的天数

百练 / 2018计算机学科夏令营上机考试 A:计算两个日期之间的天数

# 百练 / 2018计算机学科夏令营上机考试 A:计算两个日期之间的天数
# http://bailian.openjudge.cn/xly2018/A/
# Author:NitrogenousFish
# github:https://github.com/NITROGENousFish/

def main():
    date1 = list(map(int,input().split()))
    date2 = list(map(int,input().split()))
    def isrunnian(year):
        if (year%4 and not year%100) or year%400:
            return True
        else:
            return False
    sumofyear = 0
    expanddays = 0
    losedays = 0
    runnianmonth = [31,29,31,30,31,30,31,31,30,31,30,31]
    notrunnianmonth = [31,28,31,30,31,30,31,31,30,31,30,31]
    for i in range(date1[0],date2[0]):
        if isrunnian(i):
            sumofyear+=366
        else:
            sumofyear+=365

    if isrunnian(date1[0]):
        losedays += sum(runnianmonth[:date1[1]])
    else:
        losedays += sum(notrunnianmonth[:date1[1]])
    losedays += date1[2]
    
    if isrunnian(date2[0]):
        expanddays += sum(runnianmonth[:date1[1]])
    else:
        expanddays += sum(notrunnianmonth[:date1[1]])
    expanddays += date2[2]

    print(sumofyear+expanddays-losedays)



if __name__ == "__main__":
    main()

你可能感兴趣的:(北大百练)