Recherche de site Web

Convertir le temps en heures, minutes et secondes en Python


Dans ce tutoriel, nous allons parler du temps. Ne vous inquiétez pas, ce n'est pas un tutoriel d'histoire ennuyeux, mais plutôt nous allons examiner différentes façons de convertir le temps en secondes en temps en heures, minutes et secondes.

À partir de maintenant, nous ferons référence au temps en heures, minutes et secondes comme le temps au format préféré.

Cela aura l'air de :

2:46:40

Prenons un peu de temps et réfléchissons au problème à portée de main. Sans aucun doute, Python a des modules étonnants pour faire la conversion à notre place. Mais essayons d'écrire notre propre programme d'abord avant de passer aux modules intégrés.

Créer 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 convertit-on des secondes au format souhaité ?

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

Nous allons présumer 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.

Ceci est représenté mathématiquement comme :

seconds = seconds % (24 * 3600)

% opérateur donne le reste.

24*3600 puisque une heure a 3600 secondes (60*60) et un jour a 24 heures.

Après cela, nous pouvons procéder et calculer la valeur horaire à partir des secondes.

1. Obtenez la valeur de l'heure

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

Il retourne la partie entière du quotient.

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

Mathématiquement, cela se représente comme :

hour = seconds // 3600

Après cela, nous devons calculer les minutes.

2. Obtenez 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 :

 seconds = seconds % 3600

Maintenant, pour calculer la valeur des minutes à partir du résultat ci-dessus, nous allons à nouveau utiliser l'opérateur de plancher.

minutes = seconds // 60

Une minute a soixante secondes donc nous arrondissons la valeur des secondes à 60.

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

3. Obtenez 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 deuxième valeur dont nous avons besoin pour notre format préféré.

4. Code complet

Consolidons 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

Utiliser le module Time

Maintenant, examinons un module intégré qui nous permet de convertir des secondes dans notre format préféré en une ligne de code.

Le module time définit l'époque comme 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 au 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 dans votre système, utilisez la ligne de code suivante :

time.gmtime(0)

Pour convertir des secondes en format préféré, 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 sortir séparément la valeur de l'heure, de la minute et de la seconde.

Le code Python complet est comme suit :

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 offre également la possibilité d'afficher des informations supplémentaires telles que le jour, le mois et l'année.

%a
afficher le nom abrégé du jour de la semaine.
%A
afficher le nom complet du jour de la semaine.
%b
afficher le nom du mois abrégé.
%B
afficher le nom complet du mois.
%c
afficher la représentation appropriée de la date et de l'heure.
%d
afficher le jour du mois sous forme de nombre décimal [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 des secondes dans le format souhaité.

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

Le code Python pour convertir les secondes au 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 manières différentes que vous pouvez utiliser pour convertir des secondes en heures, minutes et secondes. En gros, il existe deux façons différentes d'aborder le problème.

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