定义一个满足如下要求的data类
- 提问者网友:遁入空寂
- 2021-04-29 08:35
- 五星知识达人网友:孤独入客枕
- 2021-04-29 08:42
帮你写了个. 如果有疑问或者需要修改的地方还请追问.
完成了天数加1.以及设置日期的功能. 具体请看以下代码.
#include <iostream>
using namespace std;
class Data
{
public:
void Initialize_Data();
void Set_Data();
bool is_LeapYear();
void Plus_Data();
void print();
private:
int day;
int month;
int year;
};
void Data::Initialize_Data()
{
char s;
cout<<"输入格式为 年-月-日 或者 年:月:日"<<endl;
cin>>year>>s>>month>>s>>day;
return;
}
void Data::Set_Data()
{
char s;
cout<<"输入格式为 年-月-日 或者 年:月:日"<<endl;
cin>>year>>s>>month>>s>>day;
return;
}
bool Data::is_LeapYear()
{
if( year%4==0 && ( year%100!=0 || year%400==0))
{ //判断是否闰年.
return true;
}
return false;
}
void Data::Plus_Data()
{
switch(month)
{
case 4:
case 6:
case 9:
case 11:
if(day/30!=0) ++month;
day%=30;
break;
case 2:
if(is_LeapYear())
{
if(day/29!=0) ++month;
day%=29;
}
else
{ if(day/28!=0) ++month;
day%=28;
}
break;
default:
if(day/31!=0)
++month;
day%=31;
break;
}
if(month/13!=0) ++year;
if((month%=13)==0) ++month;
++day;
print();
return;
}
void Data::print()
{
cout<<"天数加1后的日期为:"<<endl;
cout<<day<<"-"<<month<<"-"<<year<<endl;
return;
}
int main()
{
Data now;
now.Initialize_Data(); //初始化
while(true)
{
now.Plus_Data();
char s;
cout<<"是否重新设置日期?(Y/N) ";
cin>>s;
if(s=='n'||s=='N') break;
now.Set_Data();
}
return 0;
}
- 1楼网友:愁杀梦里人
- 2021-04-29 10:10
#include <iostream>
using namespace std;
class date { private: int day,month,year;
public: date() { day=1; month=1; year=2010; } void display() { cout<<day<<"日"<<month<<"月"<<year<<"年"<<endl; } void Addday() { switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: if(day==31) { day=1; month++; } else day++; break; case 12: if(day==31) { day=1; month=1; year++; } else day++; break; case 2: if(year%4==0) { if(day==29) { day=1; month++; } else day++; } else { if(day==28) { day=1; month++; } else day++; } break; case 4: case 6: case 9: case 11: if(day==30) { day++; month++; } else day++; } } void set(int d,int m,int y) { if(d>0&&d<=31&&m>0&&m<=12&&y>=0) { day=d; month=m; year=y;
}
} };
int main() { date d; d.set(31,3,2009); d.display(); d.Addday(); d.display();
return 0; } 结果: