Problem 1400. -- 日期类及前置++重载

1400: 日期类及前置++重载

Time Limit: 1 Sec  Memory Limit: 65535 MB   64bit IO Format: %lld
Submitted: 1493  Accepted: 1060
[Submit][Status][Web Board]

Description

日期类CDate,包含三个私有成员数据year,month,day(均是整数),分别代表年、月、日。
成员函数的声明如下:(前2个是私有的)
        int IsLeapYear(int y); //返回y年是否闰年,是返回1,否则返回0
        int DaysOfMonth(int y,int m);//返回y年m月的天数
        CDate();//构造函数,默认为2015年5月7日,同时输出信息“Default constructor is called!”
        CDate(int y,int m,int d);//构造函数,年月日分别为y,m,d,同时输出信息“Constructor is called!”
        void SetDate(int y,int m,int d);//设置修改日期为y年m月d日,同时输出信息“Date is reset!"
        int GetYear(); //返回年份
        int GetMonth();  //返回月份
        int GetDay();   //返回日
        void Show();   //按照指定格式(见Sample Output)输出日期信息
        重载运算符前置++为成员函数。
设计上述类,并采用下面的main函数进行测试(提交时只需提交除main函数外的代码部分)
int main()
{
    CDate d1;
    d1.Show();
    d1.SetDate(2015,2,28);
    ++d1;
    d1.Show();
    CDate d2(2016,12,31);
    d2.Show();
    ++d2;
    d2.Show();
    d1.SetDate(d2.GetYear(),d2.GetMonth(),d2.GetDay());
    d1.Show();
    return 0;
}

Sample Output

Default constructor is called!
2015-5-7
Date is reset!
2015-3-1
Constructor is called!
2016-12-31
2017-1-1
Date is reset!
2017-1-1

[Submit][Status][Web Board]