-- 最近啊大家都在做萬(wàn)年歷,記得小學(xué)奧數(shù)題里有過(guò)標(biāo)題所寫的問(wèn)題挽放。就直接把公式拿來(lái)用了绍赛,不少人覺(jué)得我這是作弊啊,其實(shí)這個(gè)公式之前我也是自己先推過(guò)的辑畦,在這里就說(shuō)明一下我的思路吧吗蚌。
首先不僅僅是1990年1月1號(hào)是星期一,公元1年1月1日它也是星期一纯出。
然后大家都知道求星期幾使用總天數(shù)余7 也就是 days%7 為了方便理解可以對(duì)結(jié)果進(jìn)行+1蚯妇。
假如沒(méi)有閏年一說(shuō)那么 year年的第一天之前有多少天呢?答案就是
(year-1)365
總結(jié)一下公式變成了 星期幾=(year-1)365%7+1
有人這時(shí)候就要說(shuō)了最關(guān)鍵的閏年哪去了暂筝?好我們先要知道箩言,閏年有366天,也就是比平年多一天焕襟,所以只要在原有的基礎(chǔ)上加上閏年的數(shù)量就好了
閏年的數(shù)量為
(year-1)/4-(year-1)/100+(year-1)/400
這個(gè)不難理解吧陨收,因?yàn)橛斜?00整除不能被400整除的不算閏年。
接下來(lái)公式就完成了
星期幾=((year-1)365+(year-1)/4-(year-1)/100+(year-1)/400)%7+1
看著長(zhǎng)長(zhǎng)的公式我們可以優(yōu)化一下
365=364+1
(year-1)365=(year-1)*364+(year-1)
364/7=52 我們要求余所以前面364那部分可以直接扔了鸵赖。
公式變?yōu)?br>
星期幾=(5(year-1)/4-(year-1)/100+(year-1)/400)%7+1
知道了某年第一天星期幾的話务漩,后面的月份就可以根據(jù)累加計(jì)算出來(lái)的拄衰。