网址:
题目描述
用户输入未来的某一天,输入格式为如 2021 6 1,编程计算这一天和2022.1.1相差多少天?(例如:今天和明天是相差一天)那一天是星期几?(注意:输出格式为 星期的数字值并在其前加“*”,星期天用7表示)
输入格式
共一行,三个整数:Y、M、D,分别代表未来某天的年、月、日。
输出格式
共两行第一行一个整数,表示一个未来某天和今2022.1相差天数.第二行一个“*”和一个整数,表示未来某天星期几。
输入数据 1
2022 1 2
输出数据 1
1
*7
数据规模与约定
对于 100% 的数据,2022≤Y≤3000、1≤M≤12、1≤D≤31
这题很简单,直接上代码:
#include<bits/stdc++.h>
using namespace std;
long long y,m,d,ans,x=6,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//每月天数
int main(){
cin>>y>>m>>d;//输入年月日
for(int i=2022;i<y;i++){
if((i%4==0&&i%100!=0)||i%400==0) ans+=366;//判断闰年
else ans+=365;
}
ans+=d-1;
if((y%4==0&&y%100!=0)||y%400==0) a[2]+=1;
for(int i=1;i<m;i++) ans+=a[i];
cout<<ans<<endl;//过了多少天
x+=ans;
x%=7;//计算是星期几
if(x==0) cout<<"*"<<7;//周日要单独判断
else cout<<"*"<<x;//其它周几
return 0;
}