java - 有人可以解释如何将大量秒数转换为可读的分钟和秒吗?
问题描述
我正在研究将大量数字(例如 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();
推荐阅读
- java - AWS Java 入门 InvalidParameterCombination
- python - Psycopg2 错误:找不到符号 _PQbackendPID
- sql - 如何识别红移中的序列模式
- python-3.x - 根据用户输入递归打印“man”、“eater”
- node.js - Openshift Node.JS 容器,502 bad gateway 错误
- python - Django 错误:apps.get_models() 返回空,无法进行查询或对模型执行任何操作
- ios - 如何通过单击打开带有标准 iOS 画廊的图像?
- amazon-sagemaker - 使用 amazon sagemaker / blazingtext 模型基于词向量反向查找词
- javascript - 如何防止axios请求将对象转换为字符串?
- windows - 在 Windows 中更改 URI 协议处理程序的名称