Модуль возвращает остаток при выполнении целочисленного деления.
Я думаю, что проще всего понять, как использовать Mod, сначала работая с проблемой в обратном порядке.
Давайте начнем с простых часов, минут исекунды - 1 час, 10 минут и 30 секунд, если быть точным.
Сначала у вас есть 30 секунд.Это просто - всего 30. Понятно.Теперь добавьте минуты - чтобы определить минуты как секунды, вы умножаете их на 60. Таким образом, 10 минут и 30 секунд = 630 секунд.
Теперь мы видим, как работает мод - потому что если вы поделите 630 на60 вы получите 10,5, но если вы проигнорируете дробь (целое целое деление), вы получите 10. Остальные - секунды.
Так что, если вы MOD 630 на 60, вы получите 30 - остаток останется при делении 630 на30.
Таким образом, чтобы определить минуты и секунды, разделите на 60 для минут и установите мод на 60 для секунд.
Теперь добавьте час.Один час = 60 минут, а 60 минут - 60 * 60 секунд, поэтому 1 час = 3600 секунд.3600 + 600 + 30 = 4230 секунд.
4230/3600 (1 час) = 1 - поэтому у нас есть один час
4230% (мод) 3600 = 630 - захватите это, и теперь мыпроцесс за минуты.
Так что, если вы укажете это дальше и добавите день - 1 день = 24 часа = 24 * 3600 = 86400 86400 + 3600 + 600 + 30 = 90630
90630 /86400 = 1 -> 1 день
90630% 86400 = 4230 -> секунд осталось
4230/3600 = 1 -> 1 час
и повторите приведенную выше логику.
Надеюсь, что это поможет прояснить ситуацию - вы продолжаете повторять эту итерацию дальше, и вы можете делать недели и годы, но месяцы особенные, поскольку они нерегулярны, и поэтому - високосные годы.