acm中的一个小应用
蔡勒公式的应用面不广泛,但是有的时候会用到,了解一下吧。
蔡勒公式只适合于1582年(中国明朝万历十年)10月15日之后的情形。
公式 w= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7
所得到的w 代表星期 w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
注意:
当年的1,2月要当成上一年的13,14月进行计算
#include<stdio.h> int main(){ int y,m,d,w; while(~scanf("%d%d%d",&y,&m,&d)){ if(m==1||m==2){ m+=12;y--; } w= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7; printf("%d\n",w); } }