实验6:Problem C: 时间和日期类(I)

Description

设计一个时间类和一个日期类,用于读取输入的数据,按格式输出日期和时间。

设计日期类Date需支持以下操作:
Date::Date(int,int,int)构造方法:传入的参数依次为年月日,用参数将日期初始化。
Date::showDate()按格式输出Date对象。

设计时间类Time需支持以下操作:
Time::Time(int,int,int)构造方法:传入的参数依次为时分秒,用参数将时间初始化。
Time::showTime()按格式输出Time对象。

-----------------------------------------------------------------------------

你设计Date类和Time类,使得main()函数能够正确运行。

函数调用格式见append.cc。

append.cc中已给出main()函数。

 

Input

输入的第一个整数n,表示有n组测试数据。

后面的输入每行为一组测试数据。每组测试数据的前3个整数是日期的年月日,后3个整数是时间的时分秒。

 

 

Output

每组测试数据对应一行输出。日期的输出格式为“yyyy-mm-dd”,时间的输出格式为“hh:mm:ss”,中间用一个空格分开。

 

 

Sample Input

3 1982 10 1 0 0 0 2000 2 28 23 59 59 2014 7 2 13 30 01

Sample Output

1982-10-01 00:00:00 2000-02-28 23:59:59 2014-07-02 13:30:01

HINT

 

输出格式用头文件<iomanip>中流操作算子:

setw(w)   :设置数据的输出宽度为w个字符

setfill(c):设置用字符c作为填充字符

 

 

Append Code

 1 #include<iostream>
 2 #include<iomanip>
 3 using namespace std;
 4 class Date{
 5 private:
 6     int y,m,d;
 7 public:
 8     Date(int yy,int mm,int dd):y(yy),m(mm),d(dd){}
 9     void showDate(){cout<<setw(2)<<setfill('0')<<y<<"-"<<setw(2)<<setfill('0')<<m<<"-"<<setw(2)<<setfill('0')<<d;}
10 };
11 class Time{
12 private:
13     int h,m,s;
14 public:
15     Time(int hh,int mm,int ss):h(hh),m(mm),s(ss){}
16     void showTime(){cout<<setw(2)<<setfill('0')<<h<<":"<<setw(2)<<setfill('0')<<m<<":"<<setw(2)<<setfill('0')<<s;}
17 };
18 int main()
19 {
20     int cases;
21     cin >> cases;
22     for(int ca = 0; ca < cases; ca++)
23     {
24         int year, month, day;
25         cin >> year >> month >> day;
26         Date date(year, month, day);
27         date.showDate();
28         cout << " ";
29         int hour, minute, second;
30         cin >> hour >> minute >> second;
31         Time time(hour, minute, second);
32         time.showTime();
33         cout << endl;
34     }
35 }

 

转载于:https://www.cnblogs.com/auto1945837845/p/5383894.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值