Курс Полный курс Android + Java для начинающих, 4 урок. Вопрос по уроку.
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 секунд, получаеются не верные значения. Как такое может быть или это просто , для примера, хотя навряд ли . Объясните, пожалуйста, этот тонкий момент, а то у меня мягко говоря легкое непонимание .