python输入两个年月日求中间天数

#输入的两个日期都被包括在天数内
#需要考虑闰年
#举例:
输入1 1 2022和11 4 2022
输出101(31+28+31+11=101)

输入1 10 2022
11 10 2022
输出11

输入1 9 2022
1 10 2022
输出31

输入20 5 1999
9 9 2004
输出1940

import time
def get_day():
    d1 = input("输入第一个日期,空格隔开,日 月 年:")
    d2 = input("输入第二个日期,空格隔开,日 月 年:")

    sec1 = time.mktime(time.strptime(d1, '%d %m %Y'))  # 字符串转为时间戳
    sec2 = time.mktime(time.strptime(d2, '%d %m %Y'))  # 字符串转为时间戳
    diff_sec = sec2-sec1
    diff_day = int(diff_sec/60/60//24)+1
    print(diff_day)
while True:
    get_day()
import datetime
y1 = input("").split(" ")[::-1]
y2 = input("").split(" ")[::-1]

d1 = datetime.datetime(int(y1[0]),int(y1[1]),int(y1[2]))   # 第一个日期
d2 = datetime.datetime(int(y2[0]),int(y2[1]),int(y2[2]))   # 第二个日期
interval = d2 - d1               # 两日期差距
print(interval.days + 1)                        # 具体的天数加1


class Date:
    def __init__(self, d, m, y):
        self.d = d
        self.m = m
        self.y = y

monthDays = [31, 28, 31, 30, 31, 30,
             31, 31, 30, 31, 30, 31]
 

def countLeapYears(d):
 
    years = d.y
 
    if (d.m <= 2):
        years -= 1
 
    return int(years / 4) - int(years / 100) + int(years / 400)
 
def getDifference(dt1, dt2):

    n1 = dt1.y * 365 + dt1.d

    for i in range(0, dt1.m - 1):
        n1 += monthDays[i]

    n1 += countLeapYears(dt1)
 
    n2 = dt2.y * 365 + dt2.d
    for i in range(0, dt2.m - 1):
        n2 += monthDays[i]
    n2 += countLeapYears(dt2)
 
    return (n2 - n1)
 
dt1 = Date(13, 12, 2018)
dt2 = Date(25, 2, 2019)
 
print(getDifference(dt1, dt2), "days")
import datetime

d1 = input(">>>")
d2 = input(">>>")

dd1 = datetime.datetime.strptime(d1, '%d %m %Y')
dd2 = datetime.datetime.strptime(d2, '%d %m %Y')
    
print((dd2 - dd1).days + 1)

from datetime import datetime
date1 = datetime.strptime(input(), "%d %m %Y")
date2 = datetime.strptime(input(), "%d %m %Y")
print((date2 - date1).days+1)

https://blog.csdn.net/u013493751/article/details/100056257

-

img