1 //1.3.5.7.8.10.12都是31天的,2月份有28或29天,4.6.9.11只有30天 2 //閏年2月則含有29天。非閏年2月含有28天 3 #include <stdio.h> 4 int montha(int year,int month) 5 { 6 if(month==2) 7 { 8 if((year%4==0 && year%100!=0) || year%400==0) 9 return(29); //是閏年 10 else 11 return(28); //不是閏年 12 } 13 else if(month==4 || month==6 || month==9 || month==11) 14 return(30); 15 else 16 return(31); 17 } 18 void NextData(int year,int month,int day) 19 { 20 if( month>12 || month<1) 21 { 22 printf("月輸入有錯!\n"); 23 } 24 else 25 { 26 if(montha(year,month)<day) 27 { 28 printf("這一天不存在!"); 29 } 30 else 31 { 32 day++; 33 if(day<=montha(year,month)) 34 printf("year=%d month=%d day=%d",year,month,day); 35 else if(month+1<=12) 36 { 37 month++; 38 printf("year=%d month=%d day=%d",year,month,day); 39 } 40 else 41 { 42 year++; 43 printf("year=%d month=%d day=%d",year,month,day); 44 } 45 } 46 } 47 48 } 49 void main() 50 { 51 int year,month,day; 52 printf("請輸入年 月 日\n"); 53 scanf("%d %d %d",&year,&month,&day); 54 NextData(year,month,day); 55 } 56 /*測試用例 57 請輸入年,月,日 58 2014 13 1 59 月輸入有錯! 60 Press any key to continue 61 62 請輸入年,月,日 63 2014 2 28 64 year=2014 month=3 day=1 65 Press any key to continue 66 67 請輸入年,月,日 68 2014 2 29 69 這一天不存在! 70 Press any key to continue 71 72 請輸入年,月,日 73 2014 12 32 74 這一天不存在! 75 Press any key to continue 76 77 請輸入年,月,日 78 2008 2 29 79 year=2008 month=3 day=1 80 Press any key to continue 81 82 請輸入年,月,日 83 2014 12 31 84 year=2015 month=1 day=1 85 Press any key to continue 86 87 請輸入年,月,日 88 2014 4 30 89 year=2014 month=5 day=1 90 Press any key to continue 91 */