1 #include <stdio.h>
2
3
4 unsigned char CaculateWeekDay(unsigned int y,unsigned char m, unsigned char d)
5 {
6 if(m==1||m==2) {
7 m+=12;
8 y--;
9 }
10 return (unsigned char)((d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7);
11 }
12
13 int main () {
14 unsigned char day,month;
15 unsigned int year;
16 day=17;
17 month=2;
18 year=2022;
19 //char w=(days + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7;
20 char iWeek=CaculateWeekDay(year,month,day);
21 switch(iWeek)
22 {
23 case 0: printf("星期一\n"); break;
24 case 1: printf("星期二\n"); break;
25 case 2: printf("星期三\n"); break;
26 case 3: printf("星期四\n"); break;
27 case 4: printf("星期五\n"); break;
28 case 5: printf("星期六\n"); break;
29 case 6: printf("星期日\n"); break;
30 }
31 return 0;
32 }