题解 | 日期类

日期类

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")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务