Vamos a crear un programa en PHP que nos convierta una cantidad de tiempo en segundos ingresada por un usuario a horas, minutos y segundos.
Pasos del programa
Primero debemos solicitarle al usuario la cantidad de segundos a convertir. Para esto podemos utilizar la función readline()
el cual nos ayuda a pedir datos:
<?php
readline("Ingresa el tiempo en segundos: ");
Estos datos deberíamos guardarlos en una variable:
$segundos = readline("Ingresa el tiempo en segundos: ");
Ahora sí, para la conversión debemos primero obtener la cantidad de horas. Para ello, debemos dividir la cantidad de segundos ingresados por el usuario por la cantidad de segundos que tiene 1 hora:
$horas = $segundos / 3600;
Ya que tenemos la cantidad de horas, obtengamos la cantidad de minutos. Previo a esto, tenemos que obtener el residuo de la división anterior, pues los segundos que sobró representarán la cantidad de minutos. Además, el valor de $segundos será reasignado al valor de este residuo:
$horas = $segundos / 3600;
$segundos = $segundos % 3600;
Ahora convirtamos la cantidad de segundos sobrantes a minutos:
$minutos = $segundos / 60;
Finalmente, el residuo de esta última división van a representar los segundos:
$segundos = $segundos % 60;
Si queremos ver la conversión en nuestra pantalla podemos imprimirlo de esta manera:
echo “Son $horas horas, $minutos minutos y $segundos segundos.”;
echo “\n”;
Podemos hacer uso del casting para eliminar los números decimales que nos genera las divisiones:
$horas = (int) ($segundos / 3600);
$segundos = (int) ($segundos % 3600);
$minutos = (int) ($segundos / 60);
$segundos = (int) ($segundos % 60);
Para evitar problemas con la precedencia y asociatividad de los operadores, es recomendable usar paréntesis en las operaciones.
Código final
Finalmente, el código resultante de nuestro programa en PHP es el siguiente:
<?php
$segundos = readline("Ingresa el tiempo en segundos: ");
$horas = (int) ($segundos / 3600);
$segundos = (int) ($segundos % 3600);
$minutos = (int) ($segundos / 60);
$segundos = (int) ($segundos % 60);
echo "Son $horas horas, $minutos minutos y $segundos segundos.";
echo "\n";
Reto
Ahora te toca hacer un programa que convierta horas, minutos y segundos a únicamente segundos. 🤠
¡Suerte!
Contribución creada por: Martín Álvarez
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.