时间类构造函数

Time Class Constructor

本文关键字:构造函数 时间      更新时间:2023-10-16

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

感谢

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

total_seconds = hours*60*60 + minutes*60 + seconds;

有没有一种方法可以通过将所有这些转换为秒并进行更简单的实现来实现这一点?

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

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

假设你在23:59:00上加120秒,你会得到一个超过午夜的值,所以你可以使用"total_seconds%24*60*60"来获得下一个午夜后的60秒,相当于从"24:01:00"到00:01:00。

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