首页 > 解决方案 > 有人可以解释如何将大量秒数转换为可读的分钟和秒吗?

问题描述

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

标签: javatime

解决方案


给定秒数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();

推荐阅读