Skip to content

FranzLee/perpetual-calendar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

perpetual-calendar

萬年曆

這是一個以 javascript 實作的萬年曆。

用 Google 找到第一個 hit 的萬年曆公式,其演算法 (如下) 根本就是錯的。

(年+年/4+年/400-年/100+月日天數-1)/7 的餘數

因此,這裡經重新運算,找出正確的演算法。

正確公式之原理

找出公式,首先得找出逝去的天數,由於1年有365天(在不論閏年的情況下),而每週有七天,365 % 7 = 1,所以每過一年,在星期上來說,跟過一天是相同的,有一個需要注意的點,由於是算經過的年份,所以必需要把西元年 - 1

計算完年後,只要再加上尚未過完的那一年,已過了幾天就幾乎逼近答案了(ex.我們要找 Aug.12, 2023 ,就要找出2023年中,從Jan.1到Aug.12過了幾天)。

最後,我們必須考慮閏年造成的差距,加上了閏年(規則如下)所額外多出的天數後,再把此結果 % 7,就是正確答案了!

閏年規則:4年1閏,100年不閏,400年再閏

冷知識

在曆法制定後,曾因為閏年的方式有誤,而竟多了整整十天,故於 Oct.4, 1582 修正曆法,也讓隔天成為了 Oct.15, 1582!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages