【发布时间】:2022-01-17 16:39:08
【问题描述】:
对于我的一个使用 C++ 的大学课程,我们必须实现一个创建时间对象的类,该类可以在两个不同的时间之间执行不同的算术函数(+、-、-=、+= 等...)。
我的老师告诉我们,对于这个实验,日历时间的不同组成部分(小时、分钟、秒)是 unsigned int 类型。
我们在不同时间之间进行减法时遇到问题。由于类型是unsigned int,如果t1
如何解决这个问题?
编辑:例如,假设 t1 = 00:00:00 和 t2 = 00:00:01。如果我们做 t1 - t2,我们应该有 23:59:59 作为最终答案
【问题讨论】:
-
如果 t1 t1 < t2 ? t2 - t1 : t1 - t2
-
您好,感谢您的回复。问题是如果假设 t1 = 00:00:00 和 t2 = 00:00:01 通过执行 t1 - t2,我们应该在 23:59:59 降落。按照您的建议,我们的最终答案将是 00:00:01
-
@itsthea:那么……就这样吧。测试它是否更大,如果是,则进行不同的数学运算。有什么问题?
-
看看modular arithmetic和C++中的模运算符
标签: c++ time unsigned unsigned-integer