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

C++ Using operator overloading to add two time values

本文关键字:两个 时间 运算符 重载 添加 C++      更新时间:2023-10-16

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

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::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

任何人都可以给我一个解决这个问题的建议吗?

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

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

也就是说,如果你只有时间的非日期部分,你确实可以每 24 小时环绕一次。您已经知道如何每 60 分钟环绕一次;工作时间相同。(如果你确实有一个日计数器,你必须在小时数环绕时将其增加一个 - 就像分钟溢出到小时一样)。