閏年的判斷方法 閏年的定義


閏年的定義(閏年的判斷方法)


今天介紹一個日期函數的技巧,如何判斷閏年(非常簡單) 。
我們先來說說復雜的方法一般來說,在很多關于數據處理的工作中,如果考慮日期數據的話,都會考慮如何判斷閏年 。在上學時學習編程的時候,好像在開始不久就有一個作業要寫程序判斷一個年份是否閏年 。這個判斷依據實際上挺繞的:
只有滿足下面兩個條件之一的年份才是閏年:

    能被4整除但不能被100整除;
    能被400整除;
寫成Excel公式就是:
=IF(OR(MOD(A1,400)=0,AND(MOD(A1,4)=0,MOD(A1,100)<>0)),"閏年", "不是閏年")



簡單的方法上面那個方法邏輯有點繞,容易把人搞糊涂了,我們介紹一個簡單的方法 。
我們知道,在Excel中兩個日期可以直接相減:
="2020/12/31"-"2020/12/30"
表示兩個日期之間相差幾天 。上面這個公式結果是1,表示兩個日期之間差了1天 。
如果我們想計算兩個日期之間包含多少天(含兩頭的日期),那么可以將公式改成:
="2020/12/31"-"2020/12/30" 1
結果就是2,表示2天 。
于是,我們可以使用公式:
="2020/12/31"-"2020/1/1" 1
來計算2020年一共多少天 。如果該結果是366天,就是閏年,否則就不是閏年 。
所以,我們可以使用如下公式:
=IF((A1 & "/12/31")-(A1&"/1/1") 1=366,"閏年","不是閏年")
使用這個公式判斷一下前面的四個年份是否閏年:

非常簡單吧

Excel的一個小錯誤仔細看上面兩個方法的計算結果,你會發現有點小小的不同:

實際上按照閏年的定義,1900年并不是一個閏年,但是在Excel中,1900年是被當作閏年對待的 。
這是一個錯誤嗎?顯然是的 。微軟不知道嗎?這是不可能的 。為什么這么多版本中微軟并沒有修改這個錯誤呢?
實際上按照微軟的解釋,這個錯誤看上去是一個有意制造的錯誤:
首先,在Excel剛剛誕生的時候,有另外一個表格軟件已經非常流行了——lotus 1-2-3,這個軟件本身就把1900年當成了閏年 。Excel為了與其兼容,就延續了這個錯誤 。后來,Excel成為主流了,但是微軟經過評估認為:1. 畢竟現在離1900年比較遠了,受這個錯誤的影響的用戶非常少 。2. 修改帶來的問題比不修改多多了,所以他們決定就不修改了 。

今天的分享就到這里了!

END
分享 / 投稿 /

【閏年的判斷方法 閏年的定義】

    猜你喜歡