定义一个满足如下要求的Date类:
1)定义对象不提供初值时,初始时间为2000年2月29日,提供初值则以初值为准;
2)提供Setdate(int,int,int)成员函数以实现日期设置;
3)提供Display()函数以年-月-日格式输出日期
4)提供adddate()函数实现加一天操作(15分)
主函数若为:
Date a,b(2023,12,31);
a.adddate();
a.Display(); //执行结果应为:2000-3-1
a.Setdate(1963,12,23);
a.Display(); //执行结果为:1963-12-23
b.adddate();
b.Display(); //执行将结果应为:2024-1-1
#include <iostream>
using namespace std;
class Date
{
private:
int year, mon, day;
public:
Date(int y=2000, int m=2, int d=29){
year = y;
mon = m;
day = d;
}
void Setdate(int y, int m, int d){
year = y;
mon = m;
day = d;
}
void desp(){
cout<<year<<'_'<<mon<<'_'<<day<<endl;
}
void add(){
int ts[31]={1,31,28,31,30,31,30,31,31,30,31,30,31},leap; //天数
leap=year%400==0||year%4==0&&year%100;//leap = year%400 == 0 || (year%4 == 0 && year%100 != 0);
ts[2] = ts[2] + leap;
day++;
if(day<=ts[mon])
return;
if(day==ts[mon]+1){
day=1;
mon++;
if (mon==13){
mon=1;
year++;
}
}
}
};
int main()
{
Date a,b(2024,12,31);
a.desp();
a.add();
a.desp();
b.desp();
b.add();
b.desp();
}
#include <iostream>
using namespace std;
class Date
{
private:
int year, mon, day;
public:
Date(int y=2000, int m=2, int d=29){
year = y;
mon = m;
day = d;
}
void Display();
void Setdate(int, int, int);
void adddate();
};
void Date::Display()
{
cout << year << '-' << mon << '-' << day << endl;
}
void Date::Setdate(int y, int m, int d)
{
year = y;
mon = m;
day = d;
}
void Date::adddate(){
int ts[31]={1,31,28,31,30,31,30,31,31,30,31,30,31},leap; //天数
leap=year%400==0||year%4==0&&year%100;//leap = year%400 == 0 || (year%4 == 0 && year%100 != 0);
ts[2] = ts[2] + leap;
day++;
if(day<=ts[mon])
return;
if(day==ts[mon]+1){
day=1;
mon++;
if (mon==13){
mon=1;
year++;
}
}
}
int main()
{
Date a,b(2023,12,31);
a.adddate();
a.Display(); //执行结果应为:2000-3-1
a.Setdate(1963,12,23);
a.Display(); //执行结果为:1963-12-23
b.adddate();
b.Display(); //执行将结果应为:2024-1-1
}