今天介紹一個日期函數的技巧,如何判斷閏年(非常簡單)。
我們先來說說複雜的方法一般來說,在很多關于數據處理的工作中,如果考慮日期數據的話,都會考慮如何判斷閏年。在上學時學習編程的時候,好像在開始不久就有一個作業要寫程序判斷一個年份是否閏年。這個判斷依據實際上挺繞的:
隻有滿足下面兩個條件之一的年份才是閏年:
寫成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,"閏年","不是閏年")
使用這個公式判斷一下前面的四個年份是否閏年:
非常簡單吧
仔細看上面兩個方法的計算結果,你會發現有點小小的不同:
實際上按照閏年的定義,1900年并不是一個閏年,但是在Excel中,1900年是被當作閏年對待的。
這是一個錯誤嗎?顯然是的。微軟不知道嗎?這是不可能的。為什麼這麼多版本中微軟并沒有修改這個錯誤呢?
實際上按照微軟的解釋,這個錯誤看上去是一個有意制造的錯誤:
首先,在Excel剛剛誕生的時候,有另外一個表格軟件已經非常流行了——lotus 1-2-3,這個軟件本身就把1900年當成了閏年。Excel為了與其兼容,就延續了這個錯誤。後來,Excel成為主流了,但是微軟經過評估認為:1. 畢竟現在離1900年比較遠了,受這個錯誤的影響的用戶非常少。2. 修改帶來的問題比不修改多多了,所以他們決定就不修改了。
今天的分享就到這裡了!
END
分享 / 投稿 / 商務 excel-plus
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!