输入第一行表示测试用例的个数m,接下来m行每行有3个用空格隔开的整数,分别表示年月日。测试数据不会有闰年。
输出m行。按xxxx-xx-xx的格式输出,表示输入日期的后一天的日期。
2 1999 10 20 2001 1 31
1999-10-21 2001-02-01
注意个位数日期前面要有0。
#include <stdio.h> #include <stdbool.h> void nextDay(int year,int month,int day){ int dayOfMonth[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; bool isLeap = (year%400 == 0) || (year%4 ==0 && year%100 != 0); if(isLeap) dayOfMonth[2] = 29; day++; if(day > dayOfMonth[month]){ day = 1; month++; } if(month > 12){ month = 1; year++; } printf("%04d-%02d-%02d\n",year,month,day); } int main(void){ int n; scanf("%d",&n); int year,month,day; for(int i = 0; i < n; ++i){ scanf("%d%d%d",&year,&month,&day); nextDay(year,month,day); } return 0; }
#include <stdio.h> #include <stdbool.h> int dateTab[2][12] = { {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; int main() { int m; scanf("%d", &m); int year, month, day; while (m--) { scanf("%d %d %d", &year, &month, &day); if (day + 1 <= dateTab[0][month - 1]) { printf("%4d-%02d-%02d\n", year, month, day + 1); } else if (month == 12 && day + 1 > dateTab[0][month - 1]) { printf("%4d-%02d-%02d\n", year + 1, 1, 1); } else if (month != 12 && day + 1 > dateTab[0][month - 1]) { printf("%4d-%02d-%02d\n", year, month + 1, 1); } } return 0; }
#include <stdio.h> int daytab[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31}; int main() { int year, month,day; int number; scanf("%d",&number); while (number--) { scanf("%d %d %d", &year, &month,&day); day += 1; if (day>daytab[month]) { month += 1; day=1; if (month>12) { year += 1; month = 1; day = 1; } } printf("%04d-%02d-%02d\n",year,month,day); } return 0; }
#include <stdio.h> int months[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 ,31}; int main() { int n; int y, m, d; scanf("%d", &n); while (n--) { scanf("%d %d %d", &y, &m, &d); d++; if (d > months[m]) { d = 1; m++; if (m > 12) { y++; m = 1; d = 1; } } printf("%04d-%02d-%02d\n", y, m, d); } return 0; }
#include <stdio.h> #include <stdlib.h> int main(){ int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int num,year,month,day; scanf("%d\n",&num); for(int i=0;i<num;i++){ while(scanf("%d%d%d",&year,&month,&day)!=EOF){ if(month==12&&day==31){ month=1; day=1; printf("%04d-%02d-%02d\n",year+1,month,day); } if(day==days[month]){ day=1; printf("%04d-%02d-%02d\n",year,month+1,day); }else{ printf("%04d-%02d-%02d\n",year,month,day+1); } } } return 0; }