#include <iostream>
using namespace std;
typedef char string80 [80];
class Data
{
public:
    Data() {}
    Data(int y, int m, int d)
    {
        SetData(y,m,d);
    }
    void SetData(int y,int m,int d)
    {
        Year=y;
        Month=m;
        Day=d;
    }
    string80 &GetStringData(string80 &Data)
    {
        sprintf(Data,"%d/%d/%d",Year,Month,Day);
        return Data;
    }
protected:
    int Year,Month,Day;
};
class Time
{
public:
    Time() {}
    Time(int h,int m, int s)
    {
        SetTime(h,m,s);
    }
    void SetTime(int h,int m,int s)
    {
        Hours=h;
        Minutes=m;
        Seconds=s;
    }
    string80 &GetStringTime(string80 &Time)
    {
        sprintf(Time,"%d:%d:%d",Hours,Minutes,Seconds);
        return Time;
    }
protected:
    int Hours,Minutes,Seconds;
};
class TimeData:public Data,public Time
{
public:
    TimeData():Data() {}
    TimeData(int y,int mo,int d,int h,int mi,int s):Data(y,mo,d),Time(h,mi,s)
    {}
    string80 &GetStringDT(string80 &DTstr)
    {
        sprintf(DTstr,"%d/%d/%d;%d:%d:%d",Year,Month,Day,Hours,Minutes,Seconds);
        return DTstr;
    }
};
void main()
{
    TimeData date1,date2(2008,6,5,10,15,05);
    string80 DemoStr;
    date1.SetData(2008,9,10);
    date1.SetTime(19,07,30);
    cout<<"The date1 data and time is:"<<date1.GetStringDT(DemoStr)<<endl;

    cout<<"The date1 time is"<<date1.GetStringData(DemoStr)<<endl;
    cout<<"The date2 date and time is"<<date2.GetStringDT(DemoStr)<<endl;
}