任务描述
X同学出生在“2002年01月07日”,已知1900年1月1日是星期一,你知道他出生的那天是星期几吗?随意给你一个日期,你知道是星期几吗?
输入格式:
输入为一行,由减号分隔的三个整数,形如:YYYY-MM-DD,表示一个日期。测试数据日期均为1900年以来的合法日期。
输出格式:
请输出该日期是星期几,星期一至星期日分别用1至7表示。
输入样例1:
2002-01-07
输出样例1:
1
输入样例2:
2019-10-30
输出样例2:
3
#include<iostream>
using namespace std;
int main() {
int y,m,d;
scanf("%d-%d-%d",&y,&m,&d);
int sum=0;
for(int i=1900; i<y; i++) {
if((i%4==0&&i%100!=0)||(i%400==0))
sum=sum+366;
else
sum=sum+365;
}
int r[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int br[12]={31,28,31,30,31,30,31,31,30,31,30,31};
for(int i=0;i<m-1;i++){
if((y%4==0&&y%100!=0)||(y%400==0)){
sum+=r[i];
}else{
sum+=br[i];
}
}
sum+=d;
//printf("sum=%d\n",sum);
int t;
t=sum%7;
if(t==0){
cout<<7;
}else{
cout<<t;
}
return 0;
}