如何快速計算出任意一天是星期幾?有哪些技巧?

丙戌探索


答:在初等數論中,有很多根據年月日計算星期的公式,我來介紹一個。


相關知識

在介紹公式前,我們先來了解一些數學和公曆相關的知識:

(1)閏年規則:四年一閏,百年不閏,四百年再閏,閏年是366天,平年是365天;

(2)閏月規則:閏年時,多的一天都加到二月中,平年二月28天,閏年二月29天;

(3)格里高利曆:我們現在使用的公曆,傳至西方,叫做格里高利曆;

在1582年10月4日(包括4日)前,羅馬使用儒略曆,羅馬教皇格里高利十三世改革曆法,針對哥白尼的日心說修正了舊曆法,規則:1582年10月4日接下來的一天為10月15日,相當於曆法中少了10天,但是星期繼續接著前一天的;



(3)取整符號:[a]表示對實數a取整,也就是拋棄小數部分,只留下整數部分,比如"[3.7865]=3";

(4)同餘式:若m是一個正整數,a、b為整數,且滿足.a=b+km(k為整數),也就是說a和b除以m的最小正餘數相同,則稱a與b對模m同餘,記作a≡b(mod m);

根據以上曆法規則和數學工具,就可以利用同餘技巧來處理,因為我們計算某一天是星期幾,只需要選定一個固定的日期,然後計算和另外一個日期的相差天數對“7”取餘即可。


蔡勒公式


其中符號:

w:表示星期,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六,0-星期日;

c:表示年份前兩位數值;

y:表示年份後兩位數值

m:表示月份,但是對於1、2月份需看作前一年的13、14月,這是為了簡化閏年規則導致的複雜度;

d:表示“日”;

以上兩個公式中,第二個其實就是第一個公式中的數值,加10後再取模,需要注意的是,在公曆中1582年10月5日~1582年10月14日的這十天,是不存在的。


實際應用

比如我們來計算2018年9月2日,帶入第一個方程:



w=(18+[18/4]+[20/4]-2*20+[13(9+1)]/5)+2-1)(mod7)

=(18+4+5-40+26+1)(mod7)

=14(mod7)

=0

於是,2018年9月2日這天,就是星期天!

當然,我們現在手機裡有了萬年曆,實際當中就不需要去計算了。


好啦!我的答案就到這裡,喜歡我們答案的讀者朋友,記得點擊關注我們——艾伯史密斯!


艾伯史密斯


這個問題的簡化版本就是已知今天星期幾,然後根據同餘來推算另外某一天是星期幾,這其中有很多簡化的規則。例如,365除以7的餘數為1,因此非閏年的一年後的今天恰好是星期數加一;又例如「判決日原則」,即4月4日,6月6日,8月8日,10月10日,12月12日都與2月最後一天的星期數相同,這是一種便於記憶而且也便於計算數日子的方案,我們可以選取判決日中的任意一天做為推算的標準,更多技巧我在這裡就不再介紹了。

一種比較複雜的推算方法涉及到查詢「世紀表格」,然而也有一種簡單的方法,那就是利用「蔡勒公式(Zeller's congruence)」進行計算,這個公式由德國數學家蔡勒最早提出。這一公式如下圖所示,公式來源於維基百科。我們在網絡上能找到大量用計算機程序實現蔡勒公式計算的程序。

不過在應用這個公式的時候需要注意,由於羅馬教廷曾經在1582年改用了新曆法,在1582年10月4日的後一天改為1582年10月15日,這一曆法沿用至今,如果涉及到在這之前的推算,需要把多加進去的10天減去。


傅渥成


這個問題需要具體看語境的。

如果告訴你今天是週日,那麼問你再過1023344天是周幾,這樣很容易算。為什麼?因為我們只要mod 7就可以了。mod是同餘,它具有一些很好的性質——比如說積性。

ab(mod7) = a(mod7)*b(mod7)

所以,就算你問我再過2018的2018次方天是周幾,我也很容易算出來,因為我掌握了同餘的數學性質。

我給你舉一個例子吧。

今天是週日,再過125天是周幾?

125(mod7)=5*25(mod7)=5(mod7)*25(mod7)=5(mod7)*4(mod7)=20(mod7)=6(mod7)

所以,再過125天是周6。

我舉的125這個例子當然很簡單,但對於比較大的數字,也是可以用這個方法算的。

但是,如果問題不是像上面這樣問的,那就難了,因為涉及到閏年的問題,也涉及到閏月的問題,比如你問我公元4326年的9月1日是周幾,這樣的問題我就回答不了了,因為要去算閏年與閏月,算起來很麻煩,而且沒有什麼意義,所以我不回答這類問題的。


瀟軒


星期與我們的生活密切相關,在生活中有人能快讀說出任意一天的星期數,讓我們感覺真不可思議。其實並沒有那麼神奇,他也沒有完全記住任意一天的星期,那麼是如何做到的呢?

速算任意一天的星期只需要進行簡單的加減心算和少量的記憶即可完成。

先來感受一下:



學會了嗎?不放試試。

知道是為什麼嗎?

那麼2019年又該如何來計算呢?

這是利用基數法來計算星期,這種方法由來已久,記憶簡單快捷,易學易記,適合心算,比較實用。

我們為每個公曆年份的每個月都確定一個星期基數,稱為月基數,是0到6之間的正整數。某個月的月基數等於該月第一天的星期數減去1。

下圖是2018年11月的日曆,

11月1日是星期四,則11月的月基數為4-1=3。用這種方法再加上日曆可以很容易找到每個月的月基數。找到月基數後記住這12組對應關係數即可,然後按照圖一的方法進行計算。

那麼如果沒有日曆,可不可以找到下一年的月基數呢?

肯定是可以的 ,該如何做呢?

記住了一年的月基數,前後年份的月基數就很容易推算了。

下一年如果是平年,其月基數是上年各月月基數+1,逢7化0;

下一年如果是閏年,其月基數是由上一年的1、2月月基數+1,3-12月月基數是由上一年的月基數+2;

閏年後接平年,其月基數是由上一年的1、2月月基數+2,3-12年的月基數是由上一年的月基數+1;

那麼2019年的月基數就為:

144025036146.



一定要記住,可以去嘗試一下,絕對有驚喜。給新年一份驚喜。


胡老師數學課堂


已知今天是9月1日星期六,求9月10日是周幾?

9月10日到9月1日差9天除以一週7天等於1餘2,所以9月10日就是週六往後數兩天,就是週一。

同理計算今天之前的日期,沒有餘數的話,今天周幾,那天就是周幾;有餘數的話,餘數是幾,往前數幾天。。


請勿極端


每年每月的對應一個小於7的數,就是當月的大於7的日期加上這個數除以7,餘數是幾就是星期幾,這12個數這個要按年計算,60年一甲子,也就是總共有60組數,這樣就可以知道任意一年的任何一天了,不過個人覺得沒有多大意義


分享到:


相關文章: