这题不知老师为啥把题目给关了,幸好在关题目之前就做出来并提交通过了。
相关资料见下面链接:
https://blog.youkuaiyun.com/blackgooes/article/details/51364038
结论整理:
公式为:w=((c/4)-2c+y+y/4+(13(mon+1)/5)+d-1)%7;
注意事项:
1、m=1时,取m=13;m=2时,取m=14;
2、w要对7取模,取模后要保证w在0-6的范围,增加if判断处理;
3、输出注意用\t输出tab键;
网上的推算函数:
#include<iostream>
using namespace std;
//泰勒公式推算星期几
int weekday(int y,int m,int d)
{
if(m==1)
{
m=13;y--;
}
if(m==2)
{
m=14;y--;
}
int c = y/100;
y=y%100;
return ((c/4)-2*c+y/4+y+(13*(m+1)/5)+d-1)%7;
}
int main()
{
int y,m,d;
while(cin>>y>>m>>d)
{
int wd=weekday(y,m,d);
if(wd<0)
wd+=7;
switch(wd)
{
case 6:cout<<"星期六";break;