1

这是我编写的一个实现,用于在 C++ 中添加 hrs、min 和 sec 有没有办法通过将所有这些转换为秒并做一个更简单的实现来实现这个?出于某种原因,它不允许我在这篇文章中添加代码:(

谢谢

4

2 回答 2

3

将小时、分钟和秒转换为秒是相当简单的:

total_seconds = hours*60*60 + minutes*60 + seconds;
于 2012-08-29T03:58:46.073 回答
2

有没有办法通过将所有这些转换为秒并做一个更简单的实现来实现这一点?

无论您采用哪种方式,都需要经常更改秒和小时/分钟/秒之间的时间,因此使用其中一个进行存储不一定有很大的好处。换句话说,午夜后的秒数可能更好,但可能不值得重写。对于像+and之类的东西-,如果你不只存储秒,那么你可以轻松计算它(参见 Mark 的帖子),做你的算术然后有一个函数从秒转换回小时/分钟/秒,将结果存储到你的数据中成员:

hours = seconds_since_midnight / 60 / 60;
minutes = seconds_since_midnight / 60 % 60;
seconds = seconds_since_midnight % 60;

假设您将 120 秒添加到 23:59:00,您将在午夜之后获得一个值,因此您可以使用“total_seconds % 24 * 60 * 60”来获得下一个午夜之后的 60 秒,相当于换行从“24:01:00”到 00:01:00。

(如果您想实际使用它,而不仅仅是为了自学,那么请考虑使用该time()函数和相关的转换例程,例如localtime()

于 2012-08-29T04:18:56.500 回答