2
respostas

Consigo deixar resultado do calculo no formato em horas?

  1. Fiz o cálculo de duração de uma viagem com caminhão = km percorrido / velocidade km/h.

Neste caso o resultado final bateu, porém no exemplo ele mostra como 100km / 80km/h = 1.25 horas. Consigo transformar esse resultado no formato em horas "01:25:00"?

def calculo_tempo_de_viagem_caminhao():
  distancia = input('Quantos KM são de viagem? ')
  distancia = int(distancia)
  velocidade = input('O caminhão andará em média quantos km/h? ')
  velocidade = int(velocidade)
  t = distancia / velocidade
  print(f'O trajeto será concluído em: {t} horas')
2 respostas

Olá,

existem algumas formas de fazer isso. Mas, basicamente é converter 1.25 horas para segundos e ir achando essas grandezas na quantidade de segundos obtido.

Por exemplo:

t = 1.25
horas, segundos = divmod(t * 3600, 3600)
minutos, segundos = divmod(segundos, 60)
print(f'{horas:02.0f}:{minutos:02.0f}:{segundos:02.0f}')

Aqui utilizamos a função divmod que facilita o trabalho retornando já o quociente e o resto da divisão.

Mas tbm poderiamos fazer asssim:

def horas(valor):
    return (valor * 3600) // 3600

def minutos(valor):
    return (valor * 3600) % 3600 // 60

def segundos(valor):
    return (valor * 3600) % 3600 % 60

print(f'{horas(t):02.0f}:{minutos(t):02.0f}:{segundos(t):02.0f}')

Que faz a mesma coisa, de forma mais verbosa e manual.

Caso ainda não conheça, seria interessante dar uma olhada nos operadores % e //.

[]'s

Fiz e deu certo valeu luciano