Comment calculer la différence de temps en Python
Publié: 2022-01-23Lorsque vous travaillez avec des dates et des heures en Python, vous devrez souvent calculer le décalage horaire. Dans ce didacticiel, vous apprendrez à calculer la différence entre deux horodatages en heures, minutes et secondes.
À la fin de ce didacticiel, vous aurez appris :
- comment utiliser le module
datetimede Python pour travailler avec les dates et l'heure, - ce que sont les objets
timedelta, et comment ils sont utiles, et - calculer la différence de temps entre deux horodatages quelconques, en heures, minutes et secondes.
Commençons.
Comment utiliser le module datetime de Python
Pour travailler avec des dates et des heures en Python, vous utiliserez le module datetime . Le module datetime fait partie de la bibliothèque standard Python. Vous pouvez donc aller de l'avant et l'importer immédiatement dans votre environnement de travail, comme ceci :
import datetimePour calculer le décalage horaire, vous devez créer deux horodatages différents. Vous pouvez choisir de créer :
- deux objets
date, - deux objets
time, ou - une combinaison de
dateet d'time— objetsdatetime.
Comment créer un objet date en Python
Importons la classe de date du module datetime. Pour créer un objet date en Python, vous pouvez utiliser la syntaxe générale datetime.date(<year>,<month>,<day>) . Voici un exemple de création d'un objet date date1 :
from datetime import date date1 = datetime.date(2022,3,27) print(date1) # Output: 2022-03-27Vous pouvez essayer le code sur le compilateur Geekflare Python pour tester. Ou installez Python sur votre ordinateur.
Comme indiqué ci-dessus, lorsque vous imprimez la date, elle est formatée au format YYYY-MM-DD pour les dates.
Remarque : Assurez-vous de spécifier le mois sous la forme d'un nombre entier sans zéros non significatifs. Il est probable que vous ayez l'habitude d'ajouter un zéro devant le mois lorsque vous écrivez des dates.
Par exemple, pour spécifier une date en juin, le 6ème mois de l'année : utilisez 6 et non 06.
Par exemple, essayez d'exécuter l'extrait de code suivant, où le mois a été mentionné comme 03 au lieu de simplement 3 . Vous verrez qu'il génère une erreur de syntaxe comme indiqué :
date1 = datetime.date(2022,03,27) print(date1) # Error Message File "<ipython-input-12-6eb72084e6ce>", line 1 date1 = datetime.date(2022,03,27) ^ SyntaxError: invalid token Voyons maintenant comment créer un objet time en Python.
Comment créer un objet de temps en Python
Pour créer un objet de temps, importons la classe de time . Tout objet de temps Python peut être créé à l'aide de la classe time en spécifiant les attributs de classe suivants : hour , minute , second et microsecond .
Cependant, tous ces attributs sont facultatifs. Si vous ne spécifiez pas un certain attribut, disons second , il est défini sur 0 par défaut.
L'extrait de code suivant montre comment créer un objet temporel time1 . Comme pour l'objet date , vous pouvez imprimer l'objet time pour voir l'heure formatée.
from datetime import time time1 = datetime.time(13,27,45,4600) print(time1) # Output: 13:27:45.004600Comment créer un objet datetime en Python
Comme vous pouvez le voir, l'objet date ne contient aucune information sur l'heure. Et l'objet de time ne contient pas d'informations sur la date.
Cependant, dans la pratique, vous aurez besoin à la fois de la date et de l'heure. Il est donc recommandé d'utiliser la classe datetime à la place.
Vous pouvez accéder à la classe datetime et créer des objets datetime en Python, comme indiqué ci-dessous :
dt1 = datetime.datetime(2022,3,27,13,27,45,46000) print(dt1) # Output: 2022-03-27 13:27:45.046000 Créons maintenant un autre objet datetime dt2 sans le second attribut. Vous pouvez voir qu'il est défini sur 0 - la valeur par défaut.
dt2 = datetime.datetime(2022,6,30,14,28) print(dt2) # Output: 2022-06-30 14:28:00Jusqu'à présent, vous avez appris à créer des horodatages en Python, sous forme de dates, d'heures et de datetimes. Il est maintenant temps de voir comment vous pouvez calculer la différence entre deux horodatages.
Rendez-vous à la section suivante pour le savoir.
Comment utiliser l'objet timedelta en Python
En Python, timedelta désigne une période de temps. C'est la différence entre deux objets date , time ou datetime .
Si vous ajoutez ou soustrayez deux objets date , time ou datetime , vous obtiendrez un objet timedelta . Cet objet timedelta a des attributs et des méthodes utiles qui peuvent aider à calculer la différence de temps.
Continuons et calculons la différence entre les deux objets datetime dt1 et dt2 .
dt1 = datetime.datetime(2022,3,27,13,27,45,46000) dt2 = datetime.datetime(2022,6,30,14,28) tdelta = dt2 - dt1 print(tdelta) print(type(tdelta)) # Output 95 days, 1:00:14.954000 <class 'datetime.timedelta'> À partir de l'extrait de code ci-dessus, vous pouvez voir que la variable tdelta contient la différence de temps entre dt1 et dt2 . Et le type de tdelta est vérifié comme étant de la classe timedelta à l'aide de la fonction intégrée type() de Python.

Maintenant, codons un autre exemple.
Comment trouver le décalage horaire entre deux dates
Prenons un exemple simple mais intéressant.
Problème : Calculer le décalage horaire entre la date actuelle (aujourd'hui) et votre anniversaire.
Pour ce faire, définissez aujourd'hui comme premier horodatage et votre anniversaire comme deuxième horodatage.
Dans un premier temps, créons deux objets datetime :
- un pour aujourd'hui, appelons-le
today, et - un autre pour ton anniversaire, appelons-le
bday
La classe datetime a la méthode now() qui vous donne la date et l'heure locales actuelles. Alors utilisons-le today notre date de référence.
today = datetime.datetime.now() print(today) # Sample Output: 2022-01-22 09:10:18.489538 Dans le code ci-dessous, remplacez bday par votre anniversaire pour calculer le temps restant pour votre anniversaire cette année.
Si vous lisez ceci après votre anniversaire, n'hésitez pas à définir bday pour votre prochain anniversaire.
bday = datetime.datetime(2022,8,30,11,59) print(bday) # Sample Output: 2022-08-30 11:59:00 L'étape suivante consiste à calculer time_diff qui est un objet timedleta , comme expliqué précédemment. Soustrayez simplement today de votre bday et vous aurez le décalage horaire.
time_diff = bday - today print(f"Your birthday is in {time_diff}") # Output Your birthday is in 220 days, 2:46:00.127416 Pour connaître le nombre de jours restants, utilisez l'attribut days sur time_diff , comme indiqué :
tdays = time_diff.days print(f"Your birthday is in {tdays} days.") # Output Your birthday is in 220 days.Comment trouver le décalage horaire en secondes
Calculons maintenant à combien de secondes se trouve votre anniversaire.
Pour calculer la différence de temps totale en secondes, utilisez la méthode total_seconds() sur l'objet timedelta time_diff .
tsecs = time_diff.total_seconds() print(f"Your birthday is {tsecs} seconds away.") # Output Your birthday is 19017960.127416 seconds away.Eh bien, c'est trop long d'attendre !
Cela dit, vous savez maintenant comment calculer la différence de temps entre deux horodatages en secondes.
Reprenons maintenant quelques notions de base et écrivons ce qui suit. Une journée est composée de 24 heures, une heure dure 60 minutes et 60 secondes constituent une minute.
Ceci est résumé dans l'image ci-dessous:

Ainsi, pour convertir des secondes en minutes, heures et jours, vous pouvez utiliser le tableau suivant et diviser par le facteur de conversion correspondant.

Dans les sections suivantes, convertissons le décalage horaire en secondes en minutes et en heures.
Comment trouver le décalage horaire en minutes
Pour obtenir le décalage horaire en minutes, il vous suffit de diviser le nombre total de secondes par 60.
tsecs par 60 et stockons-les dans une variable appelée tmins , comme ceci :
tmins = tsecs/60 print(f"Your birthday is {tmins} minutes away.") # Output Your birthday is 316966.0021236 minutes away.Comment trouver le décalage horaire en heures
Maintenant que vous avez calculé le décalage horaire en minutes, vous pouvez le diviser par un facteur de 60 pour obtenir le décalage en heures. Ou vous pouvez diviser le nombre total de secondes par 60*60 = 3600.
thrs = tsecs/(60*60) print(f"Your birthday is {thrs} hours away.") # Output Your birthday is 5282.76670206 hours away.Vous savez maintenant comment calculer le décalage horaire dans l'unité de votre choix.
Conclusion
Dans ce didacticiel, vous avez appris à :
- créer et travailler avec des dates et des heures à l'aide du module
datetimede Python, - utiliser des objets
timedeltapour obtenir un laps de temps ou une différence de temps, et - calculer le décalage horaire en secondes, minutes et heures.
J'espère que vous avez trouvé ce tutoriel utile. Maintenant que vous savez tout sur le calcul du décalage horaire en Python, il est temps de mettre vos compétences en pratique.
Bon apprentissage et codage !
Apprenez à écrire égal ou différent du code ou créez un jeu de serpent en python ici.
