愿你坚持不懈,努力进步,进阶成自己理想的人

—— 2017.09, 写给3年后的自己

PAT-练习3:求日期和时间

定义一个日期类Date,私有成员为year,month,day。定义一个Time类,私有成员为hour,minute。两个类中各有一个成员函数display(),用来输出私有成员。程序输入年,月,日,时,分。中间以空格隔开。具体输出格式如下。输入0 0 0 0 0时结束。

Sample Input:
2013 5 21 8 5
2012 12 12 12 11
0 0 0 0 0
Sample Output:
2013/05/21 08:05
2012/12/12 12:11
Sample Input:
2014 5 3 7 5
0015 12 2 14 12
0 0 0 0 0
Sample Output:
2014/05/03 07:05
0015/12/02 14:12

#include <iostream>
#include <iomanip>
#define N 10
using namespace std;

class Date {
public:
    Date(int y,int m,int d):year(y),month(m),day(d){}
    void set(int y, int m, int d) {
        year = y;
        month = m;
        day = d;
    }
    void display() {
        cout << setw(4) << setfill('0') << year << "/";
        cout << setw(2) << setfill('0') << month << "/";
        cout << setw(2) << setfill('0') << day << " ";
    }
private:
    int year;
    int month;
    int day;
};

class Time {
public:
    Time(int h, int m):hour(h), minute(m) {}
    void set(int h, int m) {
        hour = h;
        minute = m;
    }
    void display() {
        cout << setw(2) << setfill('0') << hour << ":";
        cout << setw(2) << setfill('0') << minute << endl;
    }
private:
    int hour;
    int minute;
};

int main() {
    int year, month, day, hour, min;
    while(cin>>year>>month>>day>>hour>>min) {
        if(year==0 && month==0 && day==0 && hour==0 && min==0) break;
        Date d = Date(year, month, day);
        Time t = Time(hour, min);
        d.display();
        t.display();
    }
    
    return 0;
}