菜勒公式,通过日期求周几
。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<stdio.h> 2 int Change(int year,int month,int day)//根据日期判断出星期几 3 { 4 if(month==1||month==2)//所求月份为1月或2月,应视为前一年的13月或14月; 5 { 6 month+=12; 7 year--; 8 } 9 int c=year/100;//c为公元年份的前两位数字 10 int y=year%100;//c为公元年份的后两位数字 11 int m=month;//m为月份 12 int d=day;//d为天数 13 int W=c/4-2*c+y+y/4+26*(m+1)/10+d-1; 14 if(W<0) //若所求数字小于7,直接加上7的倍数,直到结果大于0小于7为止。 15 return (W+(-W/7+1)*7)%7; 16 return W%7;//若所求数字大于7,可直接对7取余,周日输出为0 17 } 18 int main() 19 { 20 int y,m,d; 21 while(scanf("%d %d %d",&y,&m,&d)!=EOF) 22 { 23 int ans=Change(y,m,d); 24 printf("%d\n",ans); 25 } 26 }