Description
设计一个日期时间类,用于读取输入的数据,按格式输出日期和时间。
设计日期时间类DateTime由2个成员组成,分别是一个Date类对象和一个Time类对象;
设计DateTime类需支持以下操作:
DateTime::DateTime()无参构造方法:初始化为1年1月1日、0时0分0秒;
DateTime::DateTime(const Date&,const Time&)构造方法:依照参数传入的日期和时间初始化对象;
DateTime::DateTime(int,int,int,int,int,int)构造方法:依照参数(顺序为年月日、时分秒)初始化对象;
DateTime::showDateTime()方法:按格式输出DateTime对象;
DateTime::setDateTime(int,int,int,int,int,int)方法:依照参数(顺序为年月日、时分秒)修改对象的属性值;
DateTime类包含了两个类:Date类和Time类
设计日期类Date需支持以下操作:
Date::Date()无参构造方法:初始化为1年1月1日
Date::Date(int,int,int)构造方法:传入的参数依次为年月日,用参数将日期初始化。
Date::showDate()方法:按格式输出Date对象。
Date::setDate(int,int,int)方法:传入的参数依次为年月日,用参数修改对象的属性值
设计时间类Time需支持以下操作:
Time::Time()无参构造方法:初始化为0时0分0秒
Time::Time(int,int,int)构造方法:传入的参数依次为时分秒,用参数将时间初始化。
Time::showTime()方法:按格式输出Time对象。
Time::setTime(int,int,int)方法:传入的参数依次为时分秒,用参数修改对象的属性值
-----------------------------------------------------------------------------
你设计DateTime类、Date类和Time类,使得main()函数能够正确运行。
函数调用格式见append.cc。
append.cc中已给出main()函数。
Input
输入的第一个整数n,表示有n组测试数据。
后面的输入每行为一组测试数据。每组测试数据的前3个整数是日期的年月日,后3个整数是时间的时分秒。
Output
Sample Input
Sample Output
HINT
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
class Date{
private:
friend class DateTime;
int year,month,day;
public:
Date():year(1),month(1),day(1){}
Date(int a,int b,int c):year(a),month(b),day(c){}
Date &setDate(int a,int b,int c){year=a;month=b;day=c;return *this;}
void showDate() {
cout<<setfill('0')<<setw(4)<<year<<"-"<<setfill('0')<<setw(2)<<month<<"-"<<setfill('0')<<setw(2)<<day<<" ";
}
~Date(){}
};
class Time{
private:
friend class DateTime;
int hh,mm,ss;
public:
Time():hh(0),mm(0),ss(0){}
Time(int a,int b,int c):hh(a),mm(b),ss(c){}
Time &setTime(int a,int b,int c){hh=a;mm=b;ss=c;return *this;}
void showTime(){
cout<<setw(2)<<setfill('0')<<hh<<":"<<setw(2)<<setfill('0')<<mm<<":"<<setw(2)<<setfill('0')<<ss;
}
~Time(){}
};
class DateTime{
private:
friend class Date;
friend class Time;
Date D;
Time T;
int year1,month1,day1,hh1,mm1,ss1;
public:
DateTime(){}
DateTime(const Date& d,const Time& t):D(d),T(t){}
DateTime(int a,int b,int c,int d,int e,int f):D(a,b,c),T(d,e,f){}
void showDateTime(){
D.showDate();T.showTime();
}
DateTime &setDateTime(int a,int b,int c,int d,int e,int f){
D.setDate(a,b,c);T.setTime(d,e,f);return *this;
}
~DateTime(){}
};
int main()
{
Date date(1000, 10, 10);
Time time(1, 1, 1);
DateTime date_time(date, time);
date_time.showDateTime();
cout << endl;
int cases, flag = 0;
cin >> cases;
for(int ca = 0; ca < cases; ca++)
{
int year, month, day;
cin >> year >> month >> day;
int hour, minute, second;
cin >> hour >> minute >> second;
if(flag == 0)
{
flag = 1;
DateTime dt(year, month, day, hour, minute, second);
dt.showDateTime();
}
else if(flag == 1)
{
flag == 0;
date_time.setDateTime(year, month, day, hour, minute, second).showDateTime();
}
cout << endl;
}
}