OUJOOD.COM
Arithmétique de la date
L'arithmétique des dates utilise les opérateurs arithmétiques standard. Cet exemple avec des objets date illustre l'utilisation d'objets timedelta pour calculer de nouvelles dates, et la soustraction d'instances de date pour produire des timedeltas (y compris une valeur delta négative).
# main.py
import datetime
aujourd_hui = datetime.date.today()
print ("Aujourd'hui est :", aujourd_hui)
un_jour = datetime.timedelta(days=1)
print ("Un jour :", un_jour)
hier = aujourd_hui - un_jour
print ("Hier est :", hier)
demain = aujourd_hui + un_jour
print ("Demain est :", demain)
print ("demain - hier = ", demain - hier)
print ("hier - demain = ", hier - demain)
Aujourd'hui : 2013-02-21 Un jour : 1 day, 0:00:00 Hier : 2013-02-20 Demain : 2013-02-22 demain - hier = 2 jours, 0:00:00 hier - demain = -2 jours, 0:00:00
Comparaison des valeurs de dates et heures
Les valeurs de date et d'heure peuvent être comparées à l'aide des opérateurs standard pour déterminer laquelle est antérieure ou postérieure.
# main.py
import datetime
import time
print ("Temps:")
Temps1 = datetime.time(12, 55, 0)
print ("\tTemps1:", Temps1)
Temps2 = datetime.time(13, 5, 0)
print ("\tTemps2:", Temps2)
print ("\tTemps1 < Temps2 est :", Temps1 < Temps2)
print ("Dates:")
Date1 = datetime.date.today()
print ("\tDate1:", Date1)
Date2 = datetime.date.today() + datetime.timedelta(days=1)
print ("\tDate2:", Date2)
print ("\tDate1 > Date2 est :", Date1 > Date2)
Temps: Temps1: 12:55:00 Temps2: 13:05:00 Temps1 < Temps2 est : True Dates: dDate1: 2016-09-07 Date2: 2016-09-08 Date1 > Date2 est : False
Calculer la différence de temps en Python
Dans la suite de cet article sur Python, vous apprendrez :Comment calculer l'intervalle de temps entre les deux temps.
Obtenir la différence de temps en secondes, minutes et heures
Obtenir la différence de temps entre deux horodatages en Python
Comment calculer la différence entre deux temps, en Python ?
Par exemple, vous avez une heure de début et une heure de fin au format (HH:MM:SS) "10:33:26". Les étapes ci-dessous montrent comment calculer la différence de temps en heures, minutes et secondes entre deux temps en Python.1. Importez le module datetime
Le module datetime de Python fournit diverses fonctions pour créer et manipuler la date et l'heure. Utilisez l'instruction from datetime import datetime pour importer une classe datetime depuis un module datetime.2. Convertir des chaînes de temps en un objet datetime
Nous disposons de données temporelles au format chaîne. Avant de calculer la différence, nous devons convertir les deux chaînes de temps en un objet datetime.Il est donc nécessaire d'utiliser la fonction strptime(time_str, format) pour convertir une chaîne de temps en un objet datetime selon le format correspondant. Les codes de format sont des directives standard permettant de mentionner le format de la chaîne pour l'analyse syntaxique. Par exemple, les codes de format %H:%M:%S correspondent aux heures, minutes et secondes.
3. Soustrayez le temps de fin du temps de début
Pour obtenir la différence entre deux temps, soustraire le temps1 du temps2. Le résultat est un objet timedelta. Le timedelta représente une durée qui est la différence entre deux temps avec une résolution de l'ordre de la microseconde.4. Obtenir la différence de temps en secondes
Pour obtenir une différence de temps en secondes, utilisez les méthodes timedelta.total_seconds().5. Obtenir la différence de temps en millisecondes
Multipliez le nombre total de secondes par 1000 pour obtenir la différence de temps en millisecondes.6. Obtenir la différence de temps en minutes
Divisez les secondes par 60 pour obtenir la différence en minutes.7. Obtenez la différence de temps en heures
Divisez les secondes par 3600 pour obtenir le résultat final en heures.Exemple : Calculer le décalage horaire en Python
Dans cet exemple, nous allons voir comment calculer les secondes et les millisecondes entre deux temps.
# main.py
from datetime import datetime
temps_debut = "2:13:57"
temps_fin = "11:46:38"
# convertir la chaîne de temps en date
t1 = datetime.strptime(temps_debut, "%H:%M:%S")
print('Le temps de début est : ', t1.time())
t2 = datetime.strptime(temps_fin, "%H:%M:%S")
print('Le temps de fin est : ', t2.time())
# obtenir la différence
delta = t2 - t1
# la différence de temps en secondes
print(f"La différence de temps en seconde est: {delta.total_seconds()} secondes")
# la différence de temps en millisecondes
ms = delta.total_seconds() * 1000
print(f"La différence de temps en millisecondes est : {ms} millisecondes")
La sortie est :
Le temps de début est : 02:13:57 Le temps de fin est : 11:46:38 La différence de temps en seconde est: 34361.0 secondes La différence de temps en millisecondes est : 34361000.0 millisecondes
Obtenir le décalage horaire en heures et minutes
Remarque : pour calculer la différence de temps en minutes et en heures, appliquez les relations ci-dessous.
Tout d'abord, utilisez l'exemple ci-dessus pour obtenir la différence de temps en secondes entre deux temps.
Ensuite, divisez les secondes par 60 pour obtenir le décalage horaire en minutes.
Enfin, divisez les secondes par 3600 (60*60) pour obtenir la différence de temps en heures.
Exemple : Pour obtenir la différence de temps en heures et minutes entre deux temps.
# main.py
from datetime import datetime
temps_debut = "2:13:57"
temps_fin = "11:46:38"
t1 = datetime.strptime(temps_debut, "%H:%M:%S")
t2 = datetime.strptime(temps_fin, "%H:%M:%S")
# obtenir la différence
delta = t2 - t1
# la différence de temps en secondes
sec = delta.total_seconds()
print(f"La différence de temps en seconde est: {sec} secondes")
# la différence de temps en minutes
dm = sec / 60
print(f"La différence de temps en minutes est : {dm} minutes")
# la différence de temps en heures
dh = sec / (60*60)
print(f"La différence de temps en heures est : {dh} heures")
La sortie est :
La différence de temps en seconde est: 34361.0 secondes La différence de temps en minutes est : 572.6833333333333 minutes La différence de temps en heures est : 9.544722222222223 heures
Différence de temps entre deux timestamps en Python
Un timestamp est une information codée généralement utilisée sous UNIX, qui indique en secondes la date et l'heure à laquelle un événement particulier s'est produit.Voyons maintenant comment trouver la différence entre deux timestamps en heures, minutes et secondes.
Tout d'abord, stockez le timestamp de début dans la variable 'debut_ts' et le timestamp de fin dans la variable 'fin_ts'.
Ensuite, utilisez la méthode fromtimestamp() pour convertir les horodatages de début et de fin en objets datetime. Nous convertissons ces timestamps en datetime car nous voulons soustraire un timbre d'un autre.
Ensuite, soustraire datetime2 de datetime1 pour calculer la différence entre deux timestamps sous la forme de timedelta.
Puis, utilisez la méthode total_seconds() pour obtenir la différence en secondes.
Exemple 1 : Différence entre deux horodatages au format HH:MM:SS.
# main.py
from datetime import datetime
# start and end timestamps
debut_ts = 1652426243.907874
fin_ts = 1652436243.907874
# convertir timestamps en un objet datetime
dt1 = datetime.fromtimestamp(debut_ts)
print('Datetime du debut:', dt1)
dt2 = datetime.fromtimestamp(fin_ts)
print('Datetime de la fin :', dt2)
# Différence entre deux timestamps
# au format heures:minutes:secondes
delta = dt2 - dt1
print('Différence est:', delta)
Le résultat est comme suit :Datetime du debut: 2022-05-13 08:17:23.907874 Datetime de la fin : 2022-05-13 11:04:03.907874 Différence est: 2:46:40
Différence entre deux timestamps en secondes
Utilisez l'exemple ci-dessous pour obtenir le nombre total de secondes entre deux timestamps.Exemple :
# main.py
from datetime import datetime
# Les timestamps de début et de fin
debut_ts = 1652426243.907874
fin_ts = 1652436243.907874
# Différence entre deux timestamps
# en secondes
delta = fin_ts - debut_ts
print('Différence est:', delta, "secondes")
La sorie sra comme suit: Différence est: 10000.0 secondesVu que le timestamp est en secondes la différence directe entre deux timestamps est en secondes.
Convertir la différence entre deux timestamps en un temps au format (heures minutes secondes).
Pour convertir la différence entre deux timestamps en un temps au format (h min sec), on va créer une fonction qui se charge de cette conversion, dans cette fonction nous utilisons la methode intégrée à python divmod().La méthode divmod() prend deux nombres comme arguments et renvoie leur quotient et leur reste dans un tuple.
Ainsi on peut obtenir un résultat en deux opérations mathématiques seulement.
L’exemple suivant montre comment convertir la différence entre deux timestamps en un temps au format (heures minutes secondes) :
# main.py
from datetime import datetime
# La fonction pour convertir en temps
#format (heure, min, sec)
def convert(secondes):
min, sec = divmod(secondes, 60)
heure, min = divmod(min, 60)
return "%d h %02d min %02d sec" % (heure, min, sec)
# Les timestamps de début et de fin
debut_ts = 1652426243.907874
fin_ts = 1652436243.907874
# Différence entre deux timestamps
# en secondes
delta = fin_ts - debut_ts
print(convert(delta))
La sortie sera comme suit :2 h 46 min 40 sec