試了好幾個,這個沒錯啊
# 判斷是否是閏年
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.大體演算法是 計算每個日期到當年年底的天數 計算年與年之間的總天數差 此...