我正在研究将巨大的数字(例如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();