NextDate函数问题
NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性
NextDate函数包含三个变量month、day和year,函数的输出为输入日期后一天的日期。 要求输入变量month、day和year均为整数值,并且满足下列条件:
条件1 1≤ month ≤12 否则输出,月份超出范围
条件2 1≤ day ≤31 否则输出,日期超出范围
条件3 1912≤ year ≤2050 否则输出:年份超出范围
String nextdate(int m,int d,int y)
注意返回值是字符串。
程序要求:
1)先显示“请输入日期”
2)不满足条件1,返回:“月份超出范围”;不满足条件2,返回:“日期超出范围”;不满足条件3,返回:“年份超出范围”;如果出现多个不满足,以最先出现不满足的错误返回信息。
3)条件均满足,则输出第二天的日期:格式“****年**月**日”(如果输入2050年12月31日,则正常显示2051年1月1日
源码:
1 #include "stdafx.h" 2 #include "iostream" 3 #include <string> 4 using namespace std; 5 6 string NextDate(int year, int month, int day) 7 { 8 string nextdate; 9 //int year; 10 //int month; 11 //int day; 12 if((year<1912||year>2050)) 13 { 14 cout<<"年份超出范围!"<<endl; 15 } 16 else{ 17 if(month==12&&day==31) 18 { 19 year++; 20 21 if(year>2050) 22 { 23 cout<<"年份:"<" --年份超出范围!"<<endl; 24 } 25 else{ 26 cout<<"年份:"<endl; 27 } 28 } 29 else{ 30 cout<<"年份:"< endl; 31 } 32 } 33 char y[10]; 34 sprintf(y,"%d",year); 35 nextdate += y; 36 nextdate += "年"; 37 38 39 if((month<1||month>12)) 40 { 41 cout<<"月份超出范围!"<<endl; 42 } 43 else{ 44 if(day==31) 45 { 46 if(month==12) 47 { 48 month=1; 49 cout<<"月份:"< endl; 50 } 51 else{ 52 month++; 53 cout<<"月份:"< endl; 54 } 55 } 56 else{ 57 cout<<"月份:"< endl; 58 } 59 } 60 char m[10]; 61 sprintf(m,"%d",month); 62 nextdate += m ; 63 nextdate += "月"; 64 65 if((day<1||day>31)) 66 { 67 cout<<"日期超出范围!"<<endl; 68 } 69 else{ 70 if(day==31) 71 { 72 day=1; 73 cout<<"日期:"< endl; 74 } 75 else{ 76 day++; 77 cout<<"日期:"< endl; 78 } 79 } 80 char d[10]; 81 sprintf(d,"%d",day); 82 nextdate += d ; 83 nextdate += "日"; 84 //cout<<"输出为:"< 85 return nextdate; 86 } 87 88 89 int _tmain(int argc, _TCHAR* argv[]) 90 { 91 int year, month, day; 92 cout<<"请依次输入年份,月份,日期!"<<endl; 93 cin>>year>>month>>day; 94 cout<<"输入为:"< 年"<" "月"< "日"<<endl; 95 cout< endl; 96 system("pause"); 97 }