1584 - 日期类
时间限制 : 1 秒
内存限制 : 32 MB
编写一个日期类,要求按xxxx-xx-xx 的格式输出日期,实现加一天的操作。
题目输入
输入第一行表示测试用例的个数m,接下来m行每行有3个用空格隔开的整数,分别表示年月日。测试数据不会有闰年。
题目输出
输出m行。按xxxx-xx-xx的格式输出,表示输入日期的后一天的日期。
输入/输出样例
输入格式
2 1999 10 20 2001 1 31
输出格式
1999-10-21 2001-02-01
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); } }
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; }
Python解答
# coding=utf-8 import datetime Date = datetime.datetime m = int(input()) for _ in range(m): date = Date.strptime(input(), "%Y %m %d") delta = datetime.timedelta(days=1) new_date = date + delta print(new_date.strftime("%Y-%m-%d"))