例2.8-日期积累

#include<iostream>
using namespace std;
int num[2][13]={0,31,28,31,30,31,30,31,31,30,31,30,31,
                0,31,29,31,30,31,30,31,31,30,31,30,31};
int main(){
    int cnt,y,m,d,n;
    scanf("%d",&cnt);
    for(int i=0;i<cnt;i++){
        scanf("%d%d%d%d",&y,&m,&d,&n);
        int row=0;
        if(y%400==0||(y%100!=0&&y%4==0)) row=1;
        n+=d;
        while(n>num[row][m]){
            n-=num[row][m++];
            if(m>12){
                m-=12;
                y+=1;
                if(y%400==0||(y%100!=0&&y%4==0)) row=1;
                else row=0;
            }
        }
        printf("%04d-%02d-%02d\n",y,m,n);
    }
    return 0;
}

 

发布了69 篇原创文章 · 获赞 5 · 访问量 6514
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览