Может кто-нибудь объяснить, как конвертировать огромное количество секунд, когда они становятся читаемыми минутами и секундами? - PullRequest
0 голосов
/ 22 сентября 2019

Я работаю над кодом, преобразующим огромные числа, такие как 9999 в 2:46:39, в этот формат ЧЧ: ММ: СС.Я понимаю, как получить 2 часа и примерно 46 минут, но не так много за 39 секунд.Может кто-нибудь, пожалуйста, объясните мне это?Когда я пробовал другое число, например 4555 секунд, я получал 1:15:55.Я понимаю часовую часть, но теперь у меня нет 15 минут и 55 секунд.Я думаю, что только минуты и секунды - это единственное, в чем я не уверен.

Я использую%, чтобы получить остаток, но когда я делю их на 60, особенно для 4555, я не вижу ничего15 или 55 секунд как остаток при использовании нормального деления.

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

Ценю любую помощь.

Редактировать: Большое спасибо всем, кто ответил и показал другие способы получить их: D

Ответы [ 2 ]

4 голосов
/ 22 сентября 2019

Учитывая количество секунд 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();
0 голосов
/ 22 сентября 2019
long time = 1536259;

return (new SimpleDateFormat("mm:ss:SSS")).format(new Date(time))

Вывод:

25: 36: 259

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...