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; }