UT源码+158

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<<"年份:"<<year<<"--年份超出范围!"<<endl;
24             }
25             else{
26                 cout<<"年份:"<<year<<endl;
27             }
28         }
29         else{
30             cout<<"年份:"<<year<<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<<"月份:"<<month<<endl;
50             }
51             else{
52                 month++;
53                 cout<<"月份:"<<month<<endl;
54             }    
55         }
56         else{
57             cout<<"月份:"<<month<<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<<"日期:"<<day<<endl;
74         }
75         else{
76             day++;
77             cout<<"日期:"<<day<<endl;
78         }        
79     }
80     char d[10];
81     sprintf(d,"%d",day);
82     nextdate += d ;
83     nextdate += "";
84     //cout<<"输出为:"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
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<<"输入为:"<<year<<""<<month<<""<<day<<""<<endl;
95     cout<<NextDate(year, month, day)<<endl;
96     system("pause");
97 }

 

posted @ 2017-03-10 18:57  bigfishisbig  阅读(209)  评论(0编辑  收藏  举报