考研真题 日期类 模拟

考研真题 日期类 模拟

#include<cstdio>

int date[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}};

bool isRyear(int year)
{
    
    
    if(!year%400 ||(year%100 && !year%4))
        return 1;
    else return 0;
}

void nextDay(int year,int month,int day)
{
    
    
    int new_year,new_month,new_day;
    int day_add=0;
    int month_add=0;
    int r_year=0;
    if(isRyear(year))
        r_year=1;
    if(day==date[r_year][month])
        day_add=1;
    new_day=day%date[r_year][month]+1;
    
    if(month+day_add>12)
        month_add=1;
    new_month=(month+day_add-1)%12+1;
    
    new_year=year+month_add;
    
    printf("%4d-%02d-%02d\n",new_year,new_month,new_day);
        return ;
}

int main()
{
    
    
    int cnt;
    scanf("%d",&cnt);
    int year,month,day;
    while(cnt--)
    {
    
    
        scanf("%d%d%d",&year,&month,&day);
        nextDay(year,  month, day);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_45448563/article/details/114136620