F 日期小助手 母亲节在8到14之间变动,父亲节在15到21之间变动
日期小助手
http://www.nowcoder.com/questionTerminal/1f12bf67d436473ca4ac1bbc967ca4ad
F 日期小助手
母亲节在8到14之间变动,父亲节在15到21之间变动,注意闰年对日期变动的影响,以及,2100年不是闰年,刚开始在2100卡死也是够了。
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int y,m,d;
cin>>y>>m>>d;
int mo=14-((y-2000)+(y-2000)/4)%7;
int fa=21-((y-1998)+(y-2000)/4+1)%7;
if(y==2100){
mo=9;fa=20;
}
//cout<<mo<<"&&"<<fa<<endl;
if(m>=1&&m<=4){
printf("Mother's Day: May %dth, %d\n",mo,y);continue;
}
if(m==5){
if(d<mo)
printf("Mother's Day: May %dth, %d\n",mo,y);
else{
if(fa!=21)
printf("Father's Day: June %dth, %d\n",fa,y);
else
printf("Father's Day: June %dst, %d\n",fa,y);
}
continue;
}
if(m==6){
if(d<fa){
if(fa!=21)
printf("Father's Day: June %dth, %d\n",fa,y);
else
printf("Father's Day: June %dst, %d\n",fa,y);
}
else{
if(y==2100)
mo=8;
else if(y==2099)
mo=9;
else
mo=14-((y+1-2000)+(y+1-2000)/4)%7;
printf("Mother's Day: May %dth, %d\n",mo,y+1);
}
continue;
}
if(m>=7&&m<=12){
if(y==2100)
mo=8;
else if(y==2099)
mo=9;
else
mo=14-((y+1-2000)+(y+1-2000)/4)%7;
printf("Mother's Day: May %dth, %d\n",mo,y+1);
}
continue;
}
return 0;
}