mytime.h
#ifndef MYTIME_h_ #define MYTIME_h_ #include <iostream> //为了方便我全部写成inline函数了 class Time { private: int hours; int minutes; public: Time(){ hours=minutes=0; }; Time(int h,int m=0){ hours=h; minutes=m; }; void Reset(int h=0,int m=0) { hours=h; minutes=m; }; Time operator+(const Time &t)const { int jinwei=0; int newh=hours+t.hours; int newm=minutes+t.minutes; if(newm>60) { newm=newm%60; jinwei=1; } newh+=jinwei; return Time(newh,newm); }; Time operator+(double m)const//重载+ { int jinwei=0; int newm=m+minutes; if(newm>60) { newm=newm%60; jinwei=1; } int newh=hours+jinwei; return Time(newh,newm); }; Time operator-(const Time &t)const { int jinwei=0; int newh=hours-t.hours; int newm=minutes-t.minutes; if(newm<0) { newm=minutes-t.minutes+60; jinwei=-1; } newh+=jinwei; return Time(newh,newm); }; Time operator*(double n)const{ double totalsource=hours*60+minutes;//原来的分钟数 double totalnow=totalsource*n; int newh=totalnow/60; int newm=int(totalnow)%60;//求余必须为int return Time(newh,newm); }; friend Time operator*(double n,const Time &t){ return t*n; }; friend Time operator-(const Time &t,double m){ double total=t.hours*60+t.minutes; int now=total-m; int newh=now/60; int newm=now%60;//求余必须为int return Time(newh,newm); }; friend Time operator+(double m,const Time &t) { return t+m; } friend std::ostream &operator<<(std::ostream &os,const Time &t) { os<<t.hours<<" hours,"<<t.minutes<<" minutes."<<std::endl; return os; }; }; #endif
main114.cpp
#include<iostream> #include"myTime.h" using namespace std; void main114() { Time t1; Time t2(6,9); Time t3(7); Time t4(4,59); /*构造测试 cout<<t1<<endl; cout<<t2<<endl; cout<<t3<<endl; */ Time t5=t1+t2; //cout<<t5<<endl; //t5=t2+t4; //cout<<t5<<endl; //t5=t2+10; //cout<<t5<<endl; //t5=t4*2; t5=t2-t4; cout<<t5<<endl; cin.get(); }
——————————————————————————————————————————————————
//写的错误或者不好的地方请多多指导,可以在下面留言或者给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。
转载请注明出处:https://www.royalchen.com/
author:royalchen
Email:royalchen@royalchen.com
———————————————————————————————————————————————————