我正在研究将巨大的数字(例如9999转换为2:46:39)转换为HH:MM:SS格式的代码。我确实了解如何在46分钟内获得2小时左右的成绩,但在39秒内还不够。有人可以向我解释一下吗?当我尝试不同的数字(例如4555秒)时,我得到了1:15:55。我了解小时部分,但是现在我不在15分55秒上。我认为只有几分钟和几秒钟是我不确定的唯一事情。

我正在使用%来获得余数,但是当我将它们除以60时,尤其是对于4555,在使用普通除法时我看不到任何15或55秒作为余数。

int min = ttlNumSec % MIN60; int sec = ttlNumSec % MIN60;

感谢任何帮助。

编辑:非常感谢所有回答并显示另一种获取它们的方法的人:D

最佳答案

给定秒数ttlNumSec,您可以通过以下方式获得多少小时:

ttlNumSec / 3600


3600是小时中的秒数。

您可以通过以下方式获取分钟数:

ttlNumSec % 3600 / 60


60是每分钟的秒数。为什么要先ttlNumSec % 3600?因为那等于不足以形成另一个整小时的秒数,所以您想要获得多少分钟。

要获得秒数,请执行以下操作:

ttlNumSec % 60


Java 9的Duration类实际上内置了所有这些计算,因此您无需计算它们:

Duration d = Duration.ofSeconds(ttlNumSec);
int hours = d.toHours();
int minutes = d.toMinutesPart();
int seconds = d.toSecondsPart();

10-08 00:51