#include <stdio.h>
int Change(int year,int month,int day){//根据日期判断出星期几
if(month ==1||month==2){month+=12;year--;}//一二月计为上一年的13、14月
int c=year/100; //年份高两位
int y=year%100; //年份低两位
int m=month; //月份
int d=day; //日份
int W=c/4-2*c+y+y/4+26*(m+1)/10+d-1;//公式求出星期
int ans; //定义答案
if(W<0)ans=(W+(-W/7+1)*7)%7; //负数先变正数再模
else ans=W%7; //正数直接模7即可
if(ans==0)return ans+7; //星期7而不是星期0
else return ans;
}
int main(){
int year,month,day;cin>>year,month,day;//输入年月日
cout<<Change(year, month, day)<<endl;//输出星期
return 0;
}
/*
蔡勒公式(根据日期计算出周几)
W = 5 - C + y + [y/4] + [13 * (M+1) / 5] + d – 1
例如2018年10月23日是周二
In 2018 10 23
Out 2
*/
日期换星期
猜你喜欢
转载自blog.csdn.net/cj1064789374/article/details/84890826
今日推荐
周排行