閏年的演算法

2021-09-06 05:25:06 字數 522 閱讀 5582

關於平年、閏年的演算法,大家比較耳熟的可能就是「四年一閏」的說法,但實際上這個說法是不準確的。看看天文學上關於平年閏年的規定就很清楚了:

天文學上,把地球繞太陽一周稱為一年。但實際上,地球繞太陽轉一圈需要365天5時48分46秒,也就是365.2422天,為了方便,一年定為365天,叫做平年;這樣每過四年差不多就要多出一天來,把這一天加在2月裡,這一年就有366天,叫做閏年。通常,每四年裡有三個平年乙個閏年。公曆年份是4的倍數的,一般都是閏年。不過,每經長期閏年的修正,就會發現修正太多了,按照每四年乙個閏年計算,平均每年就要多算出0.0078天,這樣經過四百年就會多算出大約3天來,因此,每四百年中要減少三個閏年。所以規定,公曆年份是整百數的,必須是400的倍數的才是閏年,不是400的倍數的就是平年。如2023年,2023年都應是閏年,但1800,因為末尾有兩個0,就要看能不能被400整除,不能就不是閏年,也就是說,這個時候就不是四年一閏了,而是要過8年,到2023年才是閏年。

也就是說,我們通常所說的四年一閏還得加上:百年不閏,四百年再閏,才是完整的說法。

閏年的演算法

四年一閏,百年不閏,四百年再閏 關於公曆閏年是這樣規定的 地球繞太陽公轉一周叫做一回歸年,一回歸年長365日5時48分46秒。因此,公曆規定有平年和閏年,平年一年有365 日,比回歸年短0.2422日,四年共短0.9688 日,故每四年增加一日,這一年有366日,就是閏年。但四年增加一日比四個回歸年...

閏年演算法的緣由

根據這個寫出的程式的核心演算法就是 if n 4 0 n 100 0 n 400 0 但是到底是為什麼要這麼算呢,本來按照我自己的理解,好像只要是4的倍數就應該是閏年,所以對這個演算法一直沒有深入的理解,一直不知道它的原理,所以就自己搜了一下資料,了解了一下,終於弄明白了 關於公曆閏年是這樣規定的 ...

平年閏年演算法

公式 mod 7 得出的餘數就是星期數。星期數由 0 6 分別 星期日 0 星期一 1 星期二 2 星期三 3 星期四 4 星期五 5 星期六 6 月日天數 平年 閏年 一月 0 日數,0 日數,二月 3 日數,3 日數,三月 3 日數,4 日數,四月 6 日數,0 日數,五月 1 日數,2 日數,...