**作者:本口訣及公式由 (筆名)王駿( Mike Wang )設計提供。
**部落格:https://tools241.pixnet.net/blog
歡迎免費轉載或做為教材,
歡迎會華語有興趣的人都來練習。
1.本公式適用於 "1900/03/01- 2100/02/28" ,
此期間4年一潤(2月有29天), 相隔28年的同一天其 "星期幾" 也會相同,
因此可以將年份往前或往後移動28年的倍數以方便計算,
為方便計算,請選擇合適的值代入。
Y= 西元年份-2008+28的倍數,
如果月份為 "1月或2月", 則Y還要再減去一年. 口訣中以 "(去年)" 提醒。
2.十二個月的 "M月對照值" 口訣( 請記起來隨時可用 ):
"(去年)1上(榜);(去年)2留(級);扇舞試衣舞扇;六六(大順);去移巴士;
久鄰邀您兒,邀邀我,邀兒您(去聽演唱會)"。
M01月=3 ==> " 1,3" 記成 "(去年)1上(榜);" ;
M02月=6 ==> " 2,6" 記成 "(去年)2留(級);" ;
M03月=5 ==> " 3,5" 記成 "扇舞";
M04月=1 ==> " 4,1" 記成 "試衣";
M05月=3 ==> " 5,3" 記成 "舞扇";
M06月=6 ==> " 6,6" 記成 "六六(大順)";
M07月=1 ==> " 7,1" 記成 "去移";
M08月=4 ==> " 8,4" 記成 "巴士;";
M09月=0 ==> " 9,0" 記成 "久鄰(很久的鄰居)";
M10月=2 ==> "10,2" 記成 "邀您兒,";
M11月=5 ==> "11,5" 記成 "邀邀我,";
M12月=0 ==> "12,0" 記成 "邀兒您(去聽演唱會)"。
3.公式: 星期幾Week = (Y+ [Y/4]取整數 + M月對照值 + D日 ) 除以 7 的餘數.
因 (西元年份-2008)=(西元年份-2020+12)
(西元年份-2020+12)除以 7 的餘數=(西元年份-2020+5)除以 7 的餘數.
[ (西元年份-2020+12)/4]除以 7 的餘數=[(西元年份-2020)/4]+3除以 7 的餘數.
如果改用2020為起點則公式二:
星期幾Week = (Y+ [Y/4]取整數 + 1 + M月對照值 + D日 ) 除以 7 的餘數.
例: 1900/09/08(光緒26年的9月8日) 中秋是星期六
Y= 1900+(28 x 4 - 2008) = 1900 + 112 - 2008 = 2012 - 2008 = 4,
w = ( 4 + [4/4] + (M在九月的對照值)0 + 8日 ) = 13
week = 13 % 7 = 6 (星期六)
例: 2010/01/01 是星期幾?
Y = 2010+(28 x 0 - 2008) -1(如果月份為1月或2月則Y要再減一年)
= 2010-2008 -1 = 1
w = ( 1 + [1/4]) + 3 + 1 = 1 + 0 + (M在一月的對照值)3 + 1 = 5
week = 5 % 7 = 5 (星期五)
例: 2010/02/13 除夕是星期幾?
Y = 2010 - 2008 -1(如果月份為1月或2月則Y要再減一年) = 1
w = ( 1 + [1/4]) + 6 + 13 = 1 + 0 + (M在二月的對照值)6 + 13 = 20
week = 20 % 7 = 6 (星期六)
例: 2010/09/22 中秋是星期幾?
Y = 2010 - 2008 = 2
w = ( 2 + [2/4]) + 0 + 22 = 2 + 0 + (M在九月的對照值)0 + 22 = 24
week = 24 % 7 = 3 (星期三)
例: 2011/01/01 是星期幾?
Y = 2011+(28x0-2008) -1(如果月份為1月或2月則Y要再減一年)
= 2011-2008 -1 = 2
w = ( 2 + [2/4]) + 3 + 1 = 2 + 0 + 3 + 1 = 6
week = 6 % 7 = 6 (星期六)
例: 2023/09/29 中秋是星期幾?
Y = 2023-2008 = 15
w = ( 15+ [15/4]) + 0 + 29 == > 1 + 3 + 0 + 1 = 5
week = 5 % 7 = 5 (星期五)
公式二: Y=2023-2020=3
W = 3+[3/4]+1 +0 +29 ==> 4+0+1 = 5
例: 2024/02/09 除夕是星期幾?
Y = 2024-1-2008(如果月份為1月或2月則Y要再減一年) = 15
w = ( 15 + [15/4]) + 6 + 9 ==> 1 + 3 + 6 + 2 = 12
week = 12 % 7 = 5 (星期五)
公式二: Y=2024-1-2020=3
w =3+[3/4]+1 +6 +9 ==> 4+6+2 = 12
week = 12 % 7 = 5 (星期五)
註:可先將當年3月至次年2月的Y背起來, 例如2022/03至2023/02的Y=3,
2023/03至2024/02的Y=4, 2024/03至2025/02的Y=6
自2200起依序為1,2,3,4, 6,0,1,2, 4,5,6,0,...
** 高斯符號:數學王子 "高斯(C. Gauss 1777-1855)" 提出 "[取整數]" 的符號,
例 [5.03] = 5 ;若為負數則小數以下直接進位, 例 [-5.03] = -6。
** 潤年口訣:"四年一潤,百年不潤,四百年再潤"。
因為地球環繞太陽一週約為 "365.2422天",
四年一潤(例2004,2008,2012,2016);百年不潤(例1800,1900,2100,2200,
2300,2500);四百年再潤(例1600,2000,2400)。 影響星期幾的變動值 :
365天 x 西元年份 + [西元/4] - [西元/100] + [西元/400]。
** 因1900年不是潤年, 所以公式若要使用於1800/03/01至1900/02/28時 , 星期
幾還要右調1天;若使用於2100/03/01至2200/02/28時,星期幾還要左調1天。
** 有興趣者或程式設計者請參考:在公元4年3月1日以前的潤年是不規則的,
後來為修正累積的誤差,將早期儒略曆(Julian calendar)1582年10月4日的隔
天訂為現行的公曆曆法格里曆(Gregorian calendar)1582年10月15日;因
為英國是晚在1752年9月才改用公曆,而此時誤差已達11天,因此由美國
人設計的 Unix 系統中若執行 "cal 9 1752" 可查到1752年的9月份是做過修
正的,中間缺少了 11 天。1752/9/2 是星期三,隔天就是1752/9/14 星期四。
例: 1752/09/14 是星期幾?
Y = 1752 +(28 x 10 - 2008) = 24
w = ( 24+ [24/4]) +(M在九月的對照值)0 + 14 = 24 + 6 + 0 + 14 = 44
week = 44 % 7 = 2 => 因1800年及1900年不是潤年,向右調2天為星期四。
______________________________________________________
備註:您可以 "免費" 轉載上列的內容,
如果不是g-o-v-e-r-n-m-e-n-t單位或紙本刊物或教材,
請包含:作者筆名,"歡迎免費轉載" 字樣,部落格網址。
______________________________________________________
以下僅供參考:
* 各國施行公曆的日期:
1582/10/15 (義大利,西班牙,葡萄牙...)
1582/12/20 (法國)
1700/03/01 (丹麥,挪威)
1752/09/14 (英國,美國)
1918/02/14 (俄國)
1923/03/01 (希臘)