18:Tomorrow never knows?

总时间限制: 
1000ms
内存限制: 
65536kB
描述

甲壳虫的《A day in the life》和《Tomorrow never knows》脍炙人口,如果告诉你a day in the life,真的会是tomorrow never knows?相信学了计概之后这个不会是难题,现在就来实现吧。

读入一个格式为yyyy-mm-dd的日期(即年-月-日),输出这个日期下一天的日期。可以假定输入的日期不早于1600-01-01,也不晚于2999-12-30。

输入
输入仅一行,格式为yyyy-mm-dd的日期。
输出
输出也仅一行,格式为yyyy-mm-dd的日期
样例输入
2010-07-05
样例输出
2010-07-06
提示
闰年的标准:
(1)普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年) 
地球公转示意图
(2)世纪年能被400整除的是闰年。(如2000年是闰年,1100年不是闰年)

输入语句scanf("%d-%d-%d",&y,&m,&d)可以存储年,月,日.输出语句格式类似printf("%d-%02d-%02d\n",year,month,day).
  1 #include<cstdio>
  2 using namespace std;
  3 int main()
  4 {
  5 int x,m,d;
  6 scanf("%d-%d-%d",&x,&m,&d);
  7 if((x%400==0)||((x%4==0)&&(x%100!=0)))
  8 {
  9 if(m==1||m==3||m==5||m==7||m==8||m==10)
 10 {
 11 if(d==31)
 12 {
 13 printf("%d-%02d-%02d\n",x,m+1,d-30);
 14 }
 15 else
 16 {
 17 printf("%d-%02d-%02d\n",x,m,d+1);
 18 }
 19 }
 20 else if(m==12)
 21 {
 22 if(d==31)
 23 {
 24 printf("%d-%02d-%02d\n",x+1,m-11,d-30);
 25 }
 26 else
 27 {
 28 printf("%d-%02d-%02d\n",x,m,d+1);
 29 }
 30 }
 31 else if(m==4||m==6||m==9||m==11)
 32 {
 33 if(d==30)
 34 {
 35 printf("%d-%02d-%02d\n",x,m+1,d-29);
 36 }
 37 else
 38 {
 39 printf("%d-%02d-%02d\n",x,m,d+1);
 40 }
 41 }
 42 else
 43 {
 44 if(d==29)
 45 {
 46 printf("%d-%02d-%02d\n",x,m+1,d-28);
 47 }
 48 else
 49 {
 50 printf("%d-%02d-%02d\n",x,m,d+1);
 51 }
 52 }
 53 }
 54 else
 55 {
 56 if(m==1||m==3||m==5||m==7||m==8||m==10)
 57 {
 58 if(d==31)
 59 {
 60 printf("%d-%02d-%02d\n",x,m+1,d-30);
 61 }
 62 else
 63 {
 64 printf("%d-%02d-%02d\n",x,m,d+1);
 65 }
 66 }
 67 else if(m==12)
 68 {
 69 if(d==31)
 70 {
 71 printf("%d-%02d-%02d\n",x+1,m-11,d-30);
 72 }
 73 else
 74 {
 75 printf("%d-%02d-%02d\n",x,m,d+1);
 76 }
 77 }
 78 else if(m==4||m==6||m==9||m==11)
 79 {
 80 if(d==30)
 81 {
 82 printf("%d-%02d-%02d\n",x,m+1,d-29);
 83 }
 84 else
 85 {
 86 printf("%d-%02d-%02d\n",x,m,d+1);
 87 }
 88 }
 89 else
 90 {
 91 if(d==28)
 92 {
 93 printf("%d-%02d-%02d\n",x,m+1,d-27);
 94 }
 95 else
 96 {
 97 printf("%d-%02d-%02d\n",x,m,d+1);
 98 }
 99 }
100 }
101 return 0;
102 }