Convertir le temps en heures, minutes et secondes en Python

Dans ce tutoriel, nous parlerons du temps. Ne vous inquiétez pas, il ne s’agit pas d’un tutoriel d’histoire ennuyeux. Au contraire, nous examinerons différentes façons de convertir le temps en secondes en le temps en heures, minutes et secondes.

À l’avenir, nous ferons référence au temps en heures, minutes et secondes comme le temps dans le format préféré.

Cela ressemblera à :

2:46:40

Prenons un peu de ‘temps’ et réfléchissons au problème à résoudre. Sans aucun doute, Python propose des modules incroyables pour effectuer la conversion pour nous. Mais essayons d’écrire notre propre programme avant de passer aux modules intégrés.

Construction d’une fonction personnalisée pour convertir le temps en heures, minutes et secondes

Pour écrire notre propre fonction de conversion, nous devons d’abord réfléchir au problème mathématiquement.

Comment convertir les secondes dans le format préféré ?

Vous devez obtenir la valeur des heures, minutes et secondes.

Nous allons supposer que le temps en secondes ne dépasse pas le nombre total de secondes dans une journée. Si c’est le cas, nous le diviserons par le nombre total de secondes dans une journée et prendrons le reste.

Cela se représente mathématiquement comme suit :

seconds = seconds % (24 * 3600)

l’opérateur % donne le reste.

24*3600 depuis qu’une heure a 3600 secondes (60*60) et qu’une journée compte 24 heures.

Après cela, nous pouvons procéder et calculer la valeur de l’heure à partir des secondes.

1. Obtenir la valeur de l’heure

Pour obtenir la valeur de l’heure à partir des secondes, nous utiliserons l’opérateur de division entière (//).

Il renvoie la partie entière du quotient.

Puisque nous avons besoin du nombre d’heures, nous diviserons le nombre total de secondes (n) par le nombre total de secondes dans une heure (3600).

Mathématiquement, cela se représente comme suit :

hour = seconds // 3600

Après cela, nous devons calculer les minutes.

2. Obtenir la valeur des minutes

Pour calculer la valeur des minutes, nous devons d’abord diviser le nombre total de secondes par 3600 et prendre le reste.

Mathématiquement, cela se représente comme suit :

 seconds = seconds % 3600

Maintenant, pour calculer la valeur des minutes à partir du résultat ci-dessus, nous utiliserons à nouveau l’opérateur de division entière.

minutes = seconds // 60

A minute has sixty seconds hence we floor the seconds value with 60.

Après avoir calculé la valeur en minutes, nous pouvons passer au calcul de la valeur des secondes pour notre format préféré.

3. Obtenir la valeur des secondes

Pour obtenir la valeur des secondes, nous devons à nouveau diviser le nombre total de secondes par le nombre de secondes dans une minute (60) et prendre le reste.

Mathématiquement, cela se fait comme suit :

 seconds = seconds % 60

Cela donnera la valeur de la seconde dont nous avons besoin pour notre format préféré.

4. Code complet

Compilons maintenant les connaissances ci-dessus dans une fonction python.

def convert_to_preferred_format(sec):
   sec = sec % (24 * 3600)
   hour = sec // 3600
   sec %= 3600
   min = sec // 60
   sec %= 60
   print("seconds value in hours:",hour)
   print("seconds value in minutes:",min)
   return "%02d:%02d:%02d" % (hour, min, sec) 

n = 10000
print("Time in preferred format :-",convert(n))

Sortie :

seconds value in hours: 2
seconds value in minutes: 46
Time in preferred format :- 02:46:40

Utilisation du module Temps

Regardons maintenant un module intégré qui nous permet de convertir les secondes dans notre format préféré en une seule ligne de code.

Le module time définit l’époque comme étant le 1er janvier 1970, 00:00:00 (UTC) dans les systèmes Unix (dépendant du système). L’époque est essentiellement le début du temps pour un ordinateur. Pensez-y comme le jour 0. Chaque fois que nous convertissons des secondes en utilisant le module time, cette époque est utilisée comme point de référence.

Pour afficher l’époque sur votre système, utilisez la ligne de code suivante :

time.gmtime(0)

Pour convertir les secondes dans le format souhaité, utilisez la ligne de code suivante :

time.strftime("%H:%M:%S", time.gmtime(n))

Cette ligne prend le temps en secondes comme ‘n’ et vous permet ensuite de produire les valeurs d’heure, de minute et de seconde séparément.

Le code Python complet est le suivant :

import time
n=10000
time_format = time.strftime("%H:%M:%S", time.gmtime(n))
print("Time in preferred format :-",time_format)

Sortie :

Time in preferred format :- 02:46:40

Le module time vous donne également la possibilité d’afficher des informations supplémentaires telles que le jour, le mois et l’année.

%a display abbreviated weekday name.
%A display full weekday name.
%b display abbreviated month name.
%B display full month name.
%c display the appropriate date and time representation.
%d display day of the month as a decimal number [01,31].

Essayons d’utiliser %a et %b.

import time
n=100000000000
time_format = time.strftime("Day: %a, Time: %H:%M:%S, Month: %b", time.gmtime(n))
print("Time in preferred format :-",time_format)

Sortie :

Time in preferred format :- Day: Wed, Time: 09:46:40, Month: Nov

Utilisation du module Datetime

Vous pouvez également utiliser la méthode timedelta sous le module DateTime pour convertir les secondes dans le format souhaité.

Il affiche le temps écoulé en jours, heures, minutes et secondes depuis l’époque.

Le code Python pour convertir les secondes en format préféré en utilisant le module Datetime est le suivant :

import datetime
n= 10000000
time_format = str(datetime.timedelta(seconds = n))
print("Time in preferred format :-",time_format)

Sortie :

Time in preferred format :- 115 days, 17:46:40

Conclusion

Ce tutoriel a examiné trois façons différentes de convertir les secondes en heures, minutes et secondes. En gros, il y a deux façons différentes de résoudre le problème.

Soit vous écrivez votre propre fonction, soit vous utilisez un module intégré. Nous avons commencé par écrire notre propre fonction, puis nous avons examiné le module time et DateTime.

Source:
https://www.digitalocean.com/community/tutorials/python-convert-time-hours-minutes-seconds