Time Date 作业

来源:互联网 发布:去哪里投诉淘宝小二 编辑:程序博客网 时间:2024/05/14 03:55

#include <iostream.h>

class Time{

public:

      Time(){}

      Time(int h,int m,int s)

      {

       hour=h;

       minute=m;

       second=s;

      }

      friend istream & operator>>(istream &,Time &);

      friend ostream & operator<<(ostream &,Time &);

      void operator =(Time &);

      friend bool operator >(Time &t1,Time &t2);

      friend bool operator <(Time &t1,Time &t2);

      friend bool operator ==(Time &t1,Time &t2);

      friend void compare(Time &,Time &);

      void show()

      {

       cout<<hour<<":"<<minute<<":"<<second<<endl;

      }

      int hour;

      int minute;

      int second;

};

istream & operator>>(istream &input,Time &t1)

{

 input>>t1.hour>>t1.minute>>t1.second;

 return input;

}

ostream & operator<<(ostream &output,Time &t1)

{

 output<<t1.hour<<":"<<t1.minute<<":"<<t1.second;

 return output;

}

void Time::operator =(Time & t1)

{

  hour=t1.hour;

  minute=t1.minute;

  second=t1.second;

}

bool operator >(Time &t1,Time &t2)

{

 if(t1.hour>t2.hour)

       return true;

 else if(t1.hour==t2.hour&&t1.minute>t2.minute)

       return true;

 else if(t1.hour==t2.hour&&t1.minute>t2.minute&&t1.second>t2.second)

       return true;

 else

       return false;

}

bool operator <(Time &t1,Time &t2)

{

 if(!operator >(t1,t2))

     return true;

 else

       return false;

}

bool operator ==(Time &t1,Time &t2)

{

 if(t1.hour==t2.hour&&t1.minute==t2.minute&&t1.second==t2.second)

       return true;

 else

       return false;

}

void compare(Time &t1,Time &t2)

{

 if(operator>(t1,t2))

       cout<<"t1>t2";

 if(operator<(t1,t2))

       cout<<"t1<t2";

 if(operator==(t1,t2))

       cout<<"t1=t2";

}

class Date{

public:

      Date(){}

      Date(int y,int mo,int d)

      {

       year=y;

       month=mo;

       day=d;

      }

      void get_value()

      {

       cin>>year>>month>>day;

      }

      void show()

      {

       cout<<year<<"-"<<month<<"-"<<day<<endl;

      }

protected:

      int year;

      int month;

      int day;

};

class DateTime:public Date,public Time

{

public:

      DateTime(){}

    DateTime(int y,int mo,int d,int h,int m,int s):Date(y,mo,d),Time(h,m,s){}

      DateTime operator -(DateTime &c2);

      DateTime operator +(Time &t1);

      DateTime operator -(Time &t1);

      void show()

      {

       cout<<year<<"-"<<month<<"-"<<day<<" "<<hour<<":"<<minute<<":"<<second<<endl;

      }

};

DateTime DateTime::operator -(DateTime &c2)

{

 DateTime c3;

 c3.year=year-c2.year;

 c3.month=month-c2.month;

 c3.day=day-c2.day;

 c3.hour=hour-c2.hour;

 c3.minute=minute-c2.minute;

 c3.second=second-c2.second;

 return c3;

}

DateTime DateTime::operator +(Time &t1)

{

 DateTime c3;

 c3.year=year;

 c3.month=month;

 c3.day=day;

 c3.hour=hour+t1.hour;

 c3.minute=minute+t1.minute;

 c3.second=second+t1.second;

 return c3;

}

DateTime DateTime::operator -(Time &t1)

{

 DateTime c3;

 c3.year=year;

 c3.month=month;

 c3.day=day;

 c3.hour=hour-t1.hour;

 c3.minute=minute-t1.minute;

 c3.second=second-t1.second;

 return c3;

}

int main()

{

 Time t1(12,20,30),t2(10,21,25);

 cout<<"时间t1="<<t1<<endl;

 cout<<"时间t2="<<t2<<endl;

 Time t3,t4;

 cout<<"输入时间t3:";

 cin>>t3;

 cout<<"时间t3="<<t3<<endl;

 cout<<"时间t1赋值给时间t4"<<endl;

 t4=t1;

 cout<<"输出时间t4=";

 t4.show();

 cout<<"比较时间t1和时间t2:";

 compare(t1,t2);

 Date d1;

 cout<<endl;

 cout<<"输入日期d1:";

 d1.get_value();

 cout<<"输出日期d1=";

 d1.show();

 DateTime c1(1996,10,12,12,20,14),c2(1994,4,12,10,1,2);

 DateTime c3,c4,c5;

 cout<<"日期时间c3等于日期时间c1-c2:"<<endl;

 c3=c1-c2;

 cout<<"输出日期时间c3=";

 c3.show();

 cout<<"日期时间c4等于日期时间c1+时间t1:"<<endl;

 c4=c1+t1;

 cout<<"输出日期时间c4=";

 c4.show();

 cout<<"日期时间c5等于日期时间c1-时间t1:"<<endl;

 c5=c1-t1;

 cout<<"输出日期时间c5=";

 c5.show();

 return 0;

}

0 0
原创粉丝点击