這一次把閏年說個清楚
地球繞太陽轉一周所需要的時間為一年。如果地球繞太陽一周的時間剛剛好是365天整,那麼每一年就都是365天。
然而,地球繞太陽一周所用的時間並不是365天整,大約為365天零6小時。這樣每4年就多出了1天。所以,就規定每4年增加1天,稱為閏年,其他的年份就稱為平年。平年是365天,閏年是366天,並把這多出來的一天放到2月份。這樣二月份的天數就是變化的了。
>>> import calendar
>>> calendar.mdays
[0, 31,29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
「不過不加這一個天會怎樣?地球還能停轉嗎?」
地球雖然不會停轉,但是四季就亂了套了。每一千年的累積誤差就是 1000 * 0.25 = 250(天)。
(請看圖寫話)
隨著人類測量時間的精度提高,人們發現地球繞太陽一周所需要的時間是365天零5小時48分46秒。換成天就是:365 +5 / 24 + 48 / 1440 + 46 / 86400 ≈ 365.24天。那每一百年就有24個閏年,即四年一閏而百年又少一閏。
(這裡需要補充天文學的基礎知識)
地球繞太陽一周的時間用分數表示即365又10463/43200天,這意味著每過43200年應當有10463個閏年。而按照四年一閏、百年不閏,即每百年24閏的演算法,每過43200年一共才增加了10368天,就少了95天。所以我們的曆法除了四年一閏、百年不閏之外,還規定四百年再閏。在43200年內,去掉閏年:43200 / 4 - 43200 / 100 +43200 / 400 = 10476,誤差了 10476 –10463 = 13 天。
小學生看到這裡就夠了。小學所學的判斷閏年的法則:能被4整除且不能被100整除的為閏年,能被400整除的也是閏年。口訣:四年一閏、百年不閏、四百年又閏。看下圖。
(這裡需要補充整除的判斷方法)
現在的科學無非就是在小數點後面加上幾個數字而已 。的確地球公轉一周的時間不是365.24,而是365 + 5 / 24 + 48 / 1440 + 46 / 86400,仍然是約等於 365.2421990740741。那麼再規定 3200年不閏:43200 / 4- 43200 / 100 + 43200 / 400 - 43200 / 3200 = 10462.5,誤差是:10463 – 10462.5 = 0.5天。
現在我們的曆法是相當精確的,43200年的累積誤差只有0.5天。至於要不要規定172800年再閏以獲得更精確的曆法,那彷彿離我們太遙遠了。
今天的問題是:1898年後下一個閏年是( )。不要偷看下圖的答案。
(有問題請關注並留言)
TAG:親子編程 |