日期**+月份**+年份**
就可以秒算任意年份任意日期的星期數
方法1、日期**指的是日期數,如3月18號,日期**為18。4月7號,日期**為7。
2、月份**(需要小小記憶)
五月 是 0
八月 是 1
二月 三月 十一月 是 2
六月 是 3
九月 十二月 是4
四月 七月 是5
一月 十月 是 6
如果遇到閏年 則二月**變為1,一月**變為5,其它不變。即,非閏年的月份**為622503 514624,閏年的月份**為512503 514624。
3、年份**
舉個例子 2023年的**,我們用尾數10除以4(忽略餘數)再加上10得到數字12,再用12除以7,得到的餘數5就是2023年的**。
也就是說,心算出2000到2099任意年份的**,只需將其後兩位數x除以4(忽略餘數),然後與x相加,並除以7就可以了,得到的餘數就是其年份**。10年的年份**是5,11年年份**為6。
4、秒算任意日期的星期數
如,我們算一下2023年4月25日
日期**25
月份**5
年份**5
日期**+月份**+年份**=25+5+5=35
35是7的倍數,所以2023年4月25日是星期日
再比如算一下2023年10月1日
日期**1
月份**6
年份**5
日期**+月份**+年份**=1+6+5=12
12除以7餘5,所以2023年10月1日是星期五
如果得到的**和是小於7的數,那麼此數直接是星期數
如果得到的**和是大於7的數,那麼將該數除以7得到的餘數為星期數。
方法二原理:蔡勒公式
1、w=[c/4]-2c+y+[y/4]+[26(m+1)/10]+d-1 (其中[ ]為取整符號)
2、其中,w是所求日期的星期數.如果求得的數大於7,可以減去7的倍數,直到餘數小於7為止.c是公元年份的前兩位數字,y是已知公元年份的後兩位數字;m是月數,d是日數.方括[ ]表示只擷取該數的整數部分。
3、還有乙個特別要注意的地方:所求的月份如果是1月或2月,則應視為前一年的13月或14月.所以公式中m 的取值範圍不是1-12,而是3-14.
由日期計算星期幾
c語言根據日期判斷星期幾 使用基姆拉爾森計算公式 演算法如下 基姆拉爾森計算公式 w d 2 m 3 m 1 5 y y 4 y 100 y 400 mod 7 在公式中d表示日期中的日數,m表示月份數,y表示年數。注意 在公式中有個與其他公式不同的地方 把一月和二月看成是上一年的十三月和十四月,例...
計算具體日期星期幾
時間基準 公元0年1月1日 星期日 首先計算0年1月幾號星期幾 int week 週幾 int day 日 week day 1 7 因為0年1月1 日 星期日 所以在求餘的時候減去1 就可以得到乙個數字 0 1 2 3 4 5 6 代表星期幾 然後考慮如何計算不同年份1月幾號星期幾 以0年1月幾號...
根據已知日期計算星期幾
private string weekarrays param date format is 2012 9 18 return weekday private string getweekday final string date int year 0 int month 0 int day 0 t...