2016-06-14 1 views
-2

J'espère que quelqu'un peut me diriger dans la bonne direction en travaillant avec des dates et des timedelta. Je crois comprendre que pour ajouter un nombre (ex: 10 jours) à une date, vous devez le convertir en timedelta. Si c'est correct, comment puis-je ajouter un nombre à une date quand il s'agit d'un nombre entier?python: ajouter n'importe quel nombre de jours à ce jour

toute documentation ou liens serait formidable - merci.

exemple de code, ma date est la suivante:

x = 20100103 (formatted as YYYYMMDD) 
+1

Tout d'abord qu'est-ce que cela signifie d'ajouter un nombre à une date? Qu'est-ce qu'un "numéro"? Est-ce le nombre de jours? Pourquoi utilisez-vous des entiers à la place des types ['datetime' et' timedelta' de Python] (https://docs.python.org/2/library/datetime.html)? – freakish

+0

Jetez un oeil à [this] (http://stackoverflow.com/questions/6871016/adding-5-days-to-date-in-python) – nbryans

+0

@freakish mes excuses, j'ai édité la question originale que vous êtes à droite, je veux ajouter n'importe quel nombre de jours à une date du jour –

Répondre

3
x=20100103 
x2 = int((datetime.datetime.strptime(str(x),"%Y%m%d") + datetime.timedelta(days=10)).strftime("%Y%m%d")) 

pour le décomposer

x=20100103 
x_as_datetime = datetime.datetime.strptime(str(x),"%Y%m%d") 
new_datetime = x_as_datetime + datetime.timedelta(days=10) #add your timedelta 
x2 = new_datetime.strftime("%Y%m%d") # format it back how you want 
int(x2) # if you just want an integer ... 
+0

c'était vraiment utile et instructif - merci pour la ventilation supplémentaire. travaillé parfaitement. –

1
from datetime import datetime 
from datetime import timedelta 

StartDate = "20100103" 

Date = datetime.strptime(StartDate, "%Y%m%d") 
EndDate = Date + timedelta(days=10) 
1
>>> import datetime 
>>> today = datetime.datetime.now().date() 
>>> today 
datetime.date(2016, 6, 14) 
>>> today + datetime.timedelta(days=10) 
datetime.date(2016, 6, 24) 

Il n'y a pas besoin de le convertir en un timedelta. Utilisez simplement la fonction timedelta, si vous voulez ajouter des jours, utilisez days = N, pendant des heures,