兩個日期之間閏年數計算方法探索

2021-05-24 06:45:09 字數 412 閱讀 1727

由於乙個專案的需要,需要計算兩個日期之間的天數,計算天數就涉及到閏年的問題,如何計算兩個日期之間的閏年數成為了問題的關鍵。

雖然使用迴圈可以很容易的計算出來,如下:

這個演算法的時間複雜度是(nyeare-nyears

),顯然不適宜年份相差很大的計算。

在網上找了好久,也看到一些演算法,但是不能夠對應所有的情況,有些演算法在年份比較大時,差值就不對了。

今天偶然發現了乙個規律,如下:

一般情況下,兩個日期之間的差值除以4

取整,減去重疊的部分,就是它們之間的閏年數,但是,當結束日期的餘數減去開始日期的餘數需要借位時,閏年數需要加

1,開始日期的餘數為

0的情況,當做4來看

。 經過測試,該演算法基本正確,演算法如下:

完整的演算法和測試用例如下:

Python計算兩個日期之間天數

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

計算兩個日期之間的天數

問題描述 給定兩個日期,計算相差的天數。比如2010 1 1和2010 1 3相差2天。時間限制 1000 記憶體限制 65536 輸入共兩行 第一行包含三個整數startyear,startmonth,startday,分別是起始年 月 日。第二行包含三個整數endyear,endmonth,en...

25 計算兩個日期之間的天數

總時間限制 1000ms 記憶體限制 65536kb 描述給定兩個日期,計算相差的天數。比如2010 1 1和2010 1 3相差2天。輸入共兩行 第一行包含三個整數startyear,startmonth,startday,分別是起始年 月 日。第二行包含三個整數endyear,endmonth,...