根據這個寫出的程式的核心演算法就是:
if((n%4 == 0 && n%100 != 0) || n %400 == 0)
但是到底是為什麼要這麼算呢,本來按照我自己的理解,好像只要是4的倍數就應該是閏年,所以對這個演算法一直沒有深入的理解,一直不知道它的原理,所以就自己搜了一下資料,了解了一下,終於弄明白了;
關於公曆閏年是這樣規定的:地球繞太陽公轉一周叫做一回歸年,一回歸年長365日5時48分46秒。因此,公曆規定有平年和閏年,平年一年有365日,比回歸年短0.2422日,四年共短0.9688日,故每四年增加一日,這一年有366日,就是閏年。但四年增加一日比四個回歸年又多0.0312日,400年後將多3.12日,故在400年中少設3個閏年,也就是在400年中只設97個閏年,這樣公曆年的平均長度與回歸年就相近似了。由此規定:年份是整百數的必須是400的倍數才是閏年,例如2023年、2023年就不是閏年。
這就是我們經常聽到的閏年判斷方法的由來了:即四年一閏,百年不閏,四百年再閏。
**
閏年的演算法
四年一閏,百年不閏,四百年再閏 關於公曆閏年是這樣規定的 地球繞太陽公轉一周叫做一回歸年,一回歸年長365日5時48分46秒。因此,公曆規定有平年和閏年,平年一年有365 日,比回歸年短0.2422日,四年共短0.9688 日,故每四年增加一日,這一年有366日,就是閏年。但四年增加一日比四個回歸年...
閏年的演算法
關於平年 閏年的演算法,大家比較耳熟的可能就是 四年一閏 的說法,但實際上這個說法是不準確的。看看天文學上關於平年閏年的規定就很清楚了 天文學上,把地球繞太陽一周稱為一年。但實際上,地球繞太陽轉一圈需要365天5時48分46秒,也就是365.2422天,為了方便,一年定為365天,叫做平年 這樣每過...
平年閏年演算法
公式 mod 7 得出的餘數就是星期數。星期數由 0 6 分別 星期日 0 星期一 1 星期二 2 星期三 3 星期四 4 星期五 5 星期六 6 月日天數 平年 閏年 一月 0 日數,0 日數,二月 3 日數,3 日數,三月 3 日數,4 日數,四月 6 日數,0 日數,五月 1 日數,2 日數,...