游客 Signup | Login
中文 | En

1584 - 日期类

编写一个日期类,要求按xxxx-xx-xx 的格式输出日期,实现加一天的操作

Input

输入第一行表示测试用例的个数m,接下来m行每行有3个用空格隔开的整数,分别表示年月日。测试数据不会有闰年。

Output

输出m行。按xxxx-xx-xx的格式输出,表示输入日期的后一天的日期。

Examples

Input

2
1999 10 20
2001 1 31

Output

1999-10-21
2001-02-01

Hint

注意个位数日期前面要有0。

Solution C

#include<stdio.h>
int main()
{
	int i=0,num;
	int year,month,day,k;
	scanf("%d",&num);
	while(i<num)
	{
       scanf("%d%d%d",&year,&month,&day);
	   if(month==12&&day==31)
	   {
		   printf("%d-01-01\n",year+1);
	   }
	   else if((month==2&&day==28)||(month==4&&day==30)||(month==6&&day==30)||(month==9&&day==30)||(month==11&&day==30)||(day==31))
	   {
		   k=1;
		   zzb(year,month+1,k);
	   }
	   else
	   {
		   zzb(year,month,day+1);
	   }

	  i++;

	}
	return 0;
}
void zzb(int zyear,int zmonth,int zday)
{
	if(zyear>=1000)
	{
		printf("%d",zyear);
	}
	else if(zyear>=100&&zyear<=999)
	{
         printf("0%d",zyear);
	}
	else if(zyear>=10&&zyear<=99)
	{
         printf("00%d",zyear);
	}
	else
	{
		 printf("000%d",zyear);
	}
	printf("-");
	if(zmonth>=10)
	{
        	printf("%d",zmonth);
	}
	else 
	{
        printf("0%d",zmonth);
	}
     printf("-");
	 if(zday>=10)
	 {
		 printf("%d\n",zday);
	 }
	 else 
	 {
		 printf("0%d\n",zday);
	 }
}

Solution C++

#include <cstdio>
#include <cstring>

int f[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int main() {
    //freopen("test.in", "r", stdin);
    //freopen("test.out", "w", stdout);
    int t;
    scanf("%d", &t);
    while (t--) {
        int y, m, d;
        scanf("%d %d %d", &y, &m, &d);
        ++d;
        if (d > f[m]) {
            ++m;
            d = 1;
        }
        printf("%d-%02d-%02d\n", y, m, d);
    }
    return 0;
}

Hint

注意个位数日期前面要有0。

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题