Programa Python para convertir segundos en horas, minutos y segundos

Dado un número entero n (en segundos), conviértalo en horas, minutos y segundos.

Ejemplos:

Input : 12345
Output : 3:25:45

Input : 3600
Output : 1:00:00

Enfoque #1: Ingenuo

Este enfoque es simplemente un enfoque ingenuo para obtener las horas, los minutos y los segundos mediante cálculos matemáticos simples.

# Python Program to Convert seconds
# into hours, minutes and seconds
  
def convert(seconds):
    seconds = seconds % (24 * 3600)
    hour = seconds // 3600
    seconds %= 3600
    minutes = seconds // 60
    seconds %= 60
      
    return "%d:%02d:%02d" % (hour, minutes, seconds)
      
# Driver program
n = 12345
print(convert(n))
Producción:

3:25:45

 
Enfoque n.º 2: alternativa al enfoque ingenuo

Al usar la divmod()función, que hace solo una división para producir tanto el cociente como el resto, puede obtener el resultado muy rápidamente con solo dos operaciones matemáticas.

# Python Program to Convert seconds
# into hours, minutes and seconds
  
def convert(seconds):
    min, sec = divmod(seconds, 60)
    hour, min = divmod(min, 60)
    return "%d:%02d:%02d" % (hour, min, sec)
      
# Driver program
n = 12345
print(convert(n))
Producción:

3:25:45

Enfoque #3: Usando timedelta(Objeto del datetimemódulo)

El módulo de fecha y hora proporciona un objeto timedelta que representa una duración, la diferencia entre dos fechas u horas. datetime.timedeltase puede utilizar para representar segundos en formato de horas, minutos y segundos.

# Python Program to Convert seconds
# into hours, minutes and seconds
import datetime
  
def convert(n):
    return str(datetime.timedelta(seconds = n))
      
# Driver program
n = 12345
print(convert(n))
Producción:

3:25:45

 
Enfoque #4: Usartime.strftime()

time.strftime()da más control sobre el formato. El formato y time.gmtime()se pasa como argumento. gmtime se utiliza para convertir segundos a formato de tupla especial que strftime()requiere.

# Python Program to Convert seconds
# into hours, minutes and seconds
  
import time
  
def convert(seconds):
    return time.strftime("%H:%M:%S", time.gmtime(n))
      
# Driver program
n = 12345
print(convert(n))
Producción:

03:25:45

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *