0
0

public class test1 {
public static void main(String[] args) {
//Если вы хотите написать какое-то примечание или комментарий, то поставьте 2 символа косой черты
//как сделал я и пишите, ошибок возникать не будет, это называется однострочный комментарий

//Дано количество секунд
int seconds = 1000000;

//Сохраним сколько секунд в минутах, сколько секунд в часах и сколько секунд в сутках, для дальнейших вычислений
int secondsInMinutes = 60;
int secondsInHours = secondsInMinutes * 60;
int secondsInDays = secondsInHours * 24;

//Вычисляем количество дней - оно равно общему количеству секунд деленному на количество секунд в днях
int days = seconds / secondsInDays;

//Вычисляем количество часов - берем остаток от деления (из предыдущего действия) и делим его на количество секунд в часах
int hours = (seconds % secondsInDays) / secondsInHours;

//Вычисляем количество минут - берем остаток от деления (из предыдущего действия) и делим его на количество секунд в минутах
int minutes = ((seconds % secondsInDays) % secondsInHours) / secondsInMinutes;

//Вычисляем количество секунд - берем общее количество секунд и вычитаем количество секунд, которое ушло на формирование дней, часов и минут
int leftSeconds = seconds - days * secondsInDays - hours * secondsInHours - minutes * secondsInMinutes;

//Выводим информацию на экран
System.out.println("Дано количество секунд: " + seconds);
System.out.println("Это равно");
System.out.println("Дней: " + days);
System.out.println("Часов: " + hours);
System.out.println("Минут: " + minutes);
System.out.println("Секунд: " + leftSeconds);
}
}

Получается:

Дано количество секунд: 1000000
Это равно
Дней: 11
Часов: 13
Минут: 46
Секунд: 40

Теперь собственно вопрос. Тут ведь в ответе получается не правильно, точнее только дни (11 дней), но как например в 1000000 секунд получается 46 минут? Понятное дело , что это по остатку , но опять таки у меня вопрос зачем, брать именно остаток от деления (наприме:int minutes = ((seconds % secondsInDays) % secondsInHours) / secondsInMinutes;) . Ведь с точки зрение математики , относительно 1000000 секунд, получаеются не верные значения. Как такое может быть или это просто , для примера, хотя навряд ли . Объясните, пожалуйста, этот тонкий момент, а то у меня мягко говоря легкое непонимание .


Руслан А.
1 year ago






проверку ответа можно сделать

(((11дней х 24) + 13ч) х 60 + 46мин) х 60 + 40сек = 1000000 сек

ответ имееется ввиду не то что 1000000сек = 46 минут например,

а имеется ввиду что 1000000сек = 11 дней + 13 часов + 46 мин + 40 сек

Олег
1 year ago

Понятно, спасибо большое за ответ.

Руслан А.
1 year ago

2 ответов