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;
}
全部评论
厉害。
点赞 回复 分享
发布于 2020-04-18 19:56

相关推荐

01-17 08:34
门头沟学院 Java
想找对象的单身狗在努力存钱:这工资不低了,再高点人家要招博士硕士的
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务