C ++使用运算符重载来添加两个时间值

时间:2014-03-31 23:57:39

标签: c++ operator-overloading

正如标题所说,我试图使用运算符重载添加两个不同的时间值。例如:

r1=10:00     
r2=15:50          
r3=18:20

r4=r1+r2=25:50   
r5=r1+r3=28:20           
r6=r2+r3=34:10

我设法用这个名为' Clock'

的课程的这一部分做到了这一点。

Clock Clock::operator+(int m){
int sum;
sum=hour+m+(minu+m)/60;
sum=(minu+m)%60;
return sum;
}

但是,我想要的是让时间成为24小时格式。 所以而不是:

r4=r1+r2= 25:50    
r5=r1+r3= 28:20    
r6=r2+r3= 34:10

这将是:

r4=r1+r2= 01:50    
r5=r1+r3= 04:20    
r6=r2+r3= 10:10

有人能告诉我一个解决这个问题的建议吗?

1 个答案:

答案 0 :(得分:1)

您知道std::chrono?因为你可能正在重新发明轮子。

无论如何,你添加到时间的是时差。如果你减去两次,你会得到一个时差。您不能添加5次,但可以添加5分钟或5秒。

那就是说,如果你只有一段时间的非日期部分,你确实可以每24小时环绕一次。你已经知道如何每60分钟换一次;小时工作相同。 (如果你确实有一个日程计数器,那么每当小时数被缠绕时你就必须将它增加一个 - 再次就像几分钟就会过了几个小时)。