python計算兩個日期天數差值

2021-10-02 15:36:06 字數 2119 閱讀 6023

試了好幾個,這個沒錯啊

# 判斷是否是閏年

def isleapyear(year):

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):

return true

else:

return false

# year1為起始日期,year2為終止日期

# 判斷year1是否為閏年,選擇year1當年每月的天數列表

def daybetweendates(year1, month1, day1, year2, month2, day2):

if isleapyear(year1):

print(str(year1)+':閏年')

dayofmonth1 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 列表下標從0開始的 所以後面計算月份天數的時候,傳入的月份應該-1

else:

print(str(year1) + ':非閏年')

dayofmonth1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

year_temp = year2 - year1

month_temp = month2 - month1

if year_temp == 0:

if month_temp == 0:

days = day2 - day1

else:

# days = dayofmonth1[month1 - 1] - day1 + day2 # '掐頭去尾'

i = 1

sum = 0

#假設計算3月5號到6月4號的天數,先計算3,4,5月的總天數,所以是 [month1 + i - 1-1],然後減去5,加上4

while i < month_temp + 1:

day = dayofmonth1[month1 + i - 1-1]

sum += day

i+=1

days = sum - day1 + day2

else:

if isleapyear(year2):

dayofmonth2 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

year_days = 366

else:

dayofmonth2 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

year_days = 365

i = 1

sum1 = 0

sum2 = 0

middle_year_sum_days=0

# 獲取小年份剩餘的天數

while i < month1:

day = dayofmonth1[month1 - i-1]

sum1 += day

i += 1

other_days1 = year_days - sum1 - day1

# 獲取大年份經過的天數

i=1while i < month2:

day = dayofmonth2[month2 - i-1]

sum2 += day

i += 1

other_days2 = sum2 + day2

# 獲取中間年份的天數

i=1while i < year_temp:

middle_year = year1+i

if isleapyear(middle_year):

year_day=366

else:

year_day=365

middle_year_sum_days+=year_day

i+=1

days=middle_year_sum_days+other_days1+other_days2

return days

# 2014 1.25 2018.3.26

days=daybetweendates(2014,1,25,2018,3,26)

print(days)

Python計算兩個日期之間天數

有的時候要統計兩個日期之間的相距天數,可能有很多種方法,但使用datetime模組的datetime方法無疑是裡面比較簡單的,具體 如下 import datetime d1 datetime.datetime 2018,10,31 第乙個日期 d2 datetime.datetime 2019,0...

c 計算兩個日期之間的天數差

有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的,我們規定他們之間的天數為兩天。輸入形式為yyyymmdd,例如 20110412 20110422 輸出為 11 include define isyeap x x 100 0 x 4 0 x 400 0?1 0 定義巨集判斷是否是閏年,方便計...

C 計算任意兩個日期的天數差

萌新上路,為了完成這個實驗題,摸索了好幾天,好不容易除錯完成,基本沒啥問題了,發出來紀念一下。無論是演算法還是語句都還有很多值得改進之處,望各位不吝賜教!先說一下思路 1.計算天數差的難點在於閏年,解決閏年問題就基本沒問題。2.大體演算法是 計算每個日期到當年年底的天數 計算年與年之間的總天數差 此...