Pascal

Hola, resulta que tengo que hacer un programa en el cual me dan un periodo de tiempo expresado en segundos y lo tengo que pasar a días, minutos y segundo. Lo que puedo usar son procedimientos, funciones y arrays, nada más, ¿cómo lo harías?

1 respuesta

Respuesta
1
Sea t tu var que almacena tiempo
Entonces:
Un día tiene 24 h, una h 60 min y 1 min 60 s luego un día tiene 3600*24 = 86400 s.
Ahora
d := t div 86400
h := (t mod 86400) div 3600
pongo las horas porque aunque las omites creo que las lleva el ejercicio.
m := ((t mod 86400) mod 3600)div 60
s := ((t mod 86400) mod 3600)mod 60.
Con esto tienes en cada variable el resultado en días horas, minutos y segundos. Ahora de forma elegante podrías definir:
procedure GetDias(t:integer; var d,rest:integer)
//Aquí pones la fórmula de de y haces rest igual a la parte entre paréntesis en h, o sea
T mod 86400, este será el valor que pasarás a t en el procedure GetHoras que definirás de igual manera y así sucesivamente.
La idea general del problema es que divides de forma entera el tiempo total entre la cantidad de seg que hay en un día y el resultado es la cant de días, luego divides el RESTO entre la cant de seg en una hora, luego min y lo que te quede son los seg.
¿Te sastisface?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas