【问题描述】
定义一个满足如下要求的Date类
(1)用下面的格式输出日期
日/月/年
(2)可运行在日期上加一天的操作
(3)设置日期
【输入形式】
输入原始日期以及新的日期
【输出形式】
输出原始日期加一天后的日期,以及设置新日期后的日期
【样例输入】
2018 11 30
2020 2 9
【样例输出】
after add: 1/12/2018
new date: 9/2/2020
【提示】
冒号后面有一个空格
#include <iostream>
using namespace std;
class Date
{
private:
int m_year,m_month,m_day;
public:
//构造函数
Date(int year,int month,int day);
//功能函数
void AddDay();//原始日期加后一天
void SetDate(int year,int month,int day);//设置新日期
void ShowDate();//显示日期
};
Date::Date(int year,int month,int day)//构造函数
{
m_year = year; m_month = month; m_day = day;
}
void Date::AddDay()//原始日期加后一天
{
if( (m_month==1 || m_month==3 || m_month==5 || m_month==7 || m_month==8 || m_month==10) && m_day==31 )
{
m_day=1;m_month++;
}
if( m_month==12 && m_day==31 )
{
m_day=1;m_month=1;m_year++;
}
if( (m_month==4 || m_month==6 || m_month==9 || m_month==11) && m_day==30 )
{
m_day=1;m_month++;
}
if( (m_month==2 && ( ( m_year%4==0 && m_year%100!=0 ) || ( m_year%400==0 ) )) && m_day==29 )
{
m_day=1;m_month++;
}
if( (m_month==2 && ( ( m_year%4!=0 ) || ( m_year%100==0 && m_year%400!=0 ) )) && m_day==28 )
{
m_day=1;m_month++;
}
}
void Date::SetDate(int year,int month,int day)//设置新日期
{
m_year = year; m_month = month; m_day = day;
}
void Date::ShowDate()//显示日期
{
cout << m_day << "/" << m_month << "/" << m_year << endl;
}
int main()
{
int year1,month1,day1,year2,month2,day2;
cin >> year1 >> month1 >> day1;
cin >> year2 >> month2 >> day2;
Date date(year1,month1,day1);
cout << "after add: ";
date.AddDay();
date.ShowDate();
cout << "new date: ";
date.SetDate(year2,month2,day2);
date.ShowDate();
return 0;
}