Si j'ai deux dates (ex. '8/18/2008'
Et '9/26/2008'
), quelle est la meilleure façon d'obtenir le nombre de jours entre ces deux dates?
507
Si vous avez deux objets de date, vous pouvez simplement les soustraire, ce qui calcule un timedelta
objet.
from datetime import date
d0 = date(2008, 8, 18)
d1 = date(2008, 9, 26)
delta = d1 - d0
print(delta.days)
La section pertinente de la documentation: https://docs.python.org/library/datetime.html .
Voir cette réponse pour un autre exemple.
np.datetime64
àpython datetime
stackoverflow.com/questions/52982056/…Utilisation de la puissance de datetime:
la source
date
il manque toujours son propre équivalent àstrptime()
.strptime
l'format
argument? Doit être clair avec la première date d'argument qui a un format.Jours jusqu'à Noël:
Plus arithmétique ici .
la source
Vous voulez le module datetime.
Un autre exemple:
Comme indiqué ici
la source
delta = today - last_year
print(delta.days)
la source
abs()
, ce qui est utile lorsque les dates comparées sont inconnues à l'avance et que c'est la différence qui vous intéresse. Si votre deuxième date endatetime.strptime(date, date)
est postérieure à la première date, le résultat sera négatif.abs()
rend toutes les entrées absolues (c'est-à-dire positives).Cela peut également être fait facilement avec
arrow
:Pour référence: http://arrow.readthedocs.io/en/latest/
la source
sans utiliser du code purement Lib:
la source
tout le monde a très bien répondu en utilisant la date, permettez-moi d'essayer d'y répondre en utilisant des pandas
Cela donnera la réponse. Dans le cas où l'une des entrées est la colonne de trame de données. utilisez simplement dt.days à la place des jours
la source
Il existe également une
datetime.toordinal()
méthode qui n'a pas encore été mentionnée:https://docs.python.org/3/library/datetime.html#datetime.date.toordinal
Semble bien adapté pour calculer la différence de jours, mais pas aussi lisible que
timedelta.days
.la source
(d1 - d0).days
revient0
,d1.toordinal() - d0.toordinal()
revient1
. Cela dépend de ce dont vous avez besoin dans votre cas d'utilisation réel.Pour calculer les dates et les heures, il existe plusieurs options mais j'écrirai de la manière la plus simple:
J'espère que cela aide
la source
Cela suppose, bien sûr, que vous avez déjà vérifié que vos dates sont au format
r'\d+/\d+/\d+'
.la source
map(int, s.split('/'))
. Pas vraiment révolutionnaire, mais là encore, cette question est assez stupide de base. Ma réponse montre juste une autre façon d'écorcher le chat.Voici trois façons de résoudre ce problème:
la source