安卓 根據日期判斷星期 給乙個日期判斷是星期幾

2021-10-18 21:14:08 字數 1852 閱讀 9086

只需要知道三個**

日期**+月份**+年份**

就可以秒算任意年份任意日期的星期數

方法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.

uint8_t user_clock_date_to_week(int year,int month,int day)

//蔡勒公式

if(month==1||month==2)//判斷month是否為1或2 

year--;

month+=12;

int c=year/100;

int y=year-c*100;

int week=(c/4)-2*c+(y+y/4)+(13*(month+1)/5)+day-1;

while(week<0)

week%=7;

switch(week)

case 1:debug_print("mondayn");break;

case 2:debug_print("tuesdayn");break;

case 3:debug_print("wednesdayn");break;

case 4:debug_print("thursdayn");break;

case 5:debug_print("fridayn");break;

case 6:debug_print("saturdayn");break;

case 0:debug_print("sundayn");break;

//對星期修正

week = (week == 0) ? 6 : week - 1;

return week;

閏年的判斷方法 給乙個日期判斷是星期幾

只需要知道三個 日期 月份 年份 就可以秒算任意年份任意日期的星期數 方法1 日期 指的是日期數,如3月18號,日期 為18。4月7號,日期 為7。2 月份 需要小小記憶 五月 是 0 八月 是 1 二月 三月 十一月 是 2 六月 是 3 九月 十二月 是4 四月 七月 是5 一月 十月 是 6 ...

C 根據日期判斷是否本週,根據日期,獲得星期幾

判斷選擇的日期是否是本週 public static bool isthisweek datetime somedate else 根據日期,獲得星期幾 年 月 日 星期幾,1代表星期一 7代表星期日 public static int getweekday int y,int m,int d 計算...

點選檢視乙個星期的日期

上週 span style display inline block float left id weekday div getnextweekrange class weekonchange 下週 span js var currenttime newdate function 本週 functi...