Donc, dans mon projet, j'essaie de calculer une transaction boursière et l'un des champs m'oblige à soustraire les dates 15/04/2018 (date d'achat) 27/04/2018 (date de vente) mais, je ne le suis pas savoir comment procéder pour soustraire.
J'ai essayé de soustraire comme 04/15 / 2018-04 / 27/2018, mais puisque cela n'aurait pas de sens logiquement, je ne sais pas comment faire cela.
3 Réponses :
Transformez-les en dates puis vous pouvez simplement les soustraire, voir datetime.datetime.strptime () , par exemple:
In []:
from datetime import datetime
d1 = datetime.strptime('04/15/2018', '%m/%d/%Y')
d2 = datetime.strptime('04/27/2018', '%m/%d/%Y')
d1 - d2
Out[]:
datetime.timedelta(days=-12)`
Vous voudrez examiner de plus près le datetime code > package dans la bibliothèque standard. Un autre package utile serait dateutil qui a un niveau supérieur fonctions d'analyse.
Vous pouvez faire quelque chose comme
start_date = "04/15/2018" # note that this is a string end_date = "04/27/2018" from dateutil.parser import parse start_dt = parse(start_date) end_dt = parse(end_date) time_delta = end_dt - start_dt # get the time between the two dates in different units days_between_dates = time_delta.days seconds_between_dates = time_delta.total_seconds()
En empruntant à cette réponse Différence entre deux dates en Python , datetime.datetime.strptime peut effectuer le calcul de la date:
12
sortie:
from datetime import datetime
def days_between(d1, d2):
d1 = datetime.strptime(d1, '%m/%d/%Y')
d2 = datetime.strptime(d2, '%m/%d/%Y')
return abs((d2 - d1).days) # ensures a positive return value
print(days_between('04/15/2018', '04/27/2018'))