Как рассчитать час: минуты из общего количества минут?

#php #hour

#php #час

Вопрос:

Например, у меня есть 525 минут, если мы разделим его на 60, результат будет 8,75

Но 1 час имеет только 60 минут, а не 75

Как я могу рассчитать точный час: минуты из общего количества минут?

Ответ №1:

 $hours = intval($totalMinutes/60);
$minutes = $totalMinutes - ($hours * 60);
 

Отредактировано, чтобы быть PHP

Комментарии:

1. @Jon Я бы ожидал, что большинство программистов смогут принять это и смогут делать с этим то, что они хотят, на любом языке, на котором они работают. Вы правы, что это не PHP, но вопрос в том, дает ли он оператору информацию, необходимую ему для решения проблемы? Я думаю, что это было бы.

Ответ №2:

Этот вид преобразования выполняется с использованием целочисленного деления и оператора по модулю. С помощью целочисленного деления вы узнаете, сколько «больших» единиц у вас есть, а с помощью модуля вы узнаете, сколько «маленьких» единиц осталось:

 define('MINUTES_PER_HOUR', 60);

$total_minutes = 525;
$hours = intval($total_minutes / MINUTES_PER_HOUR);  // integer division
$mins = $total_minutes % MINUTES_PER_HOUR;           // modulo

printf("%d minutes is really d:d.n", $total_minutes, $hours, $mins);
 

Посмотрите на это в действии.

Комментарии:

1. Просто чтобы добавить к этому ответу. % — это оператор по модулю, который дает остаток от деления. Т.е. 8% 5 = 3.

2. Вау, отличный ответ, спасибо вам и спасибо другим людям за ответы!

Ответ №3:

floor(525 / 60) дает количество часов ( 8.75 округленное в 8 меньшую сторону).

525 % 60 дает количество минут (по модулю оператора).

Комментарии:

1. 525/60 вернет 8,75, но как насчет 75? есть еще один час ..!! как мы можем добавить это в часах?

Ответ №4:

То, что я сделал для моей подруги, сделало ее график с 60-минутными интервалами, например 1=60,2=120,3=180,4=240,5=300,6=360 и т.д. и т.д. затем я сказал ей, чтобы она получила свои минуты, например, 337, найдите ближайшее число, не переходя к нему, которое будет равно 5, затем используйте число 5 равно и вычтитеэто из ваших исходных минут 337-300 = 37, остаток — это минуты, таким образом, 337 минут равны 5 часам и 37 минутам