题解 | 日期类

日期类

https://www.nowcoder.com/practice/130aa2d7d1f5436b920229dca253893b

#include <iostream>
using namespace std;

int main() {
    int m;
    while (scanf("%d",&m)!=EOF) { // 注意 while 处理多个 case
        int y,mon,d,days;
        for(int i=0;i<m;i++){
            scanf("%d %d %d",&y,&mon,&d);
            bool flag=false;//flag=0表示不是闰年
            for(int j=1;j<=1;j++){
                d++;
                if(y%4==0&&y%100!=0)flag=true;
                else if(y%400==0)flag=true;
                else flag=false;
                if(mon==2){
                    if(flag==true&&d>29){
                            mon=3;d=1;
                    }
                    if(flag==false&&d>28){
                            mon=3;d=1;                        
                    }
                }
                if(d>31 &&(mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12)){
                    d=1;
                    mon++;
                }
                if(d>30&&(mon==4||mon==6||mon==9||mon==11)){
                    d=1;
                    mon++;
                }
                if(mon>12){
                    mon=1;
                    y++;
                }
            }
            printf("%04d-%02d-%02d\n",y,mon,d);
        }

    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

与没有佬开始面试了呀
投递拓竹科技等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-16 17:28
点赞 评论 收藏
分享
08-06 16:32
已编辑
天津理工大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务