512 votes

Ajout de 5 jours à une date en python

j'ai un rendez-vous "10/10/11(m-d-y)" Je veux ajouter 5 jours à cette date en script python. Veuillez m'aider à faire cela.

Veuillez considérer que cette solution doit également fonctionner pour les fins de mois.

Merci d'avance

J'utilise le code suivant :

import re
from datetime import datetime

StartDate = "10/10/11"

Date = datetime.strptime(StartDate, "%m/%d/%y")

print Date -> est en train d'imprimer '2011-10-10 00:00:00'

Je veux maintenant ajouter 5 jours à cette date.

J'ai utilisé le code suivant :

EndDate = Date.today()+timedelta(days=10)

J'ai eu cette erreur :

name 'timedelta' is not defined

S'il vous plaît, aidez-moi sur ce point

19 votes

Indice général : si vous obtenez l'erreur name 'timedelta' is not defined cela signifie que vous n'avez pas défini timedelta n'importe où. Python est généralement assez informatif sur ses messages d'erreur.

1 votes

La recherche n'a pas fonctionné ? Tous ces exemples de code auraient été utiles : stackoverflow.com/search?q=python+timedelta . Il semble y avoir plus de 200 questions comme celle-ci.

1 votes

14voto

Atul Arvind Points 4264

Voici une autre méthode pour ajouter des jours à une date en utilisant le delta relatif de l'outil de datation .

from datetime import datetime
from dateutil.relativedelta import relativedelta

print 'Today: ',datetime.now().strftime('%d/%m/%Y %H:%M:%S') 
date_after_month = datetime.now()+ relativedelta(days=5)
print 'After 5 Days:', date_after_month.strftime('%d/%m/%Y %H:%M:%S')

Sortie :

Aujourd'hui : 25/06/2015 15:56:09

Après 5 jours : 30/06/2015 15:56:09

13voto

vstm Points 7303

Je suppose qu'il vous manque quelque chose comme ça :

from datetime import timedelta

9voto

Guray Celik Points 153

Voici une fonction permettant d'obtenir à partir de maintenant + les jours spécifiés

import datetime

def get_date(dateFormat="%d-%m-%Y", addDays=0):

    timeNow = datetime.datetime.now()
    if (addDays!=0):
        anotherTime = timeNow + datetime.timedelta(days=addDays)
    else:
        anotherTime = timeNow

    return anotherTime.strftime(dateFormat)

Utilisation :

addDays = 3 #days
output_format = '%d-%m-%Y'
output = get_date(output_format, addDays)
print output

7voto

toto_tico Points 2014

Afin d'avoir un code moins verbeux et d'éviter conflits de noms entre datetime et datetime.datetime vous devez renommer les classes avec CamelCase des noms.

from datetime import datetime as DateTime, timedelta as TimeDelta

Vous pouvez donc faire ce qui suit, ce qui me semble plus clair.

date_1 = DateTime.today() 
end_date = date_1 + TimeDelta(days=10)

De plus, il y aurait pas de conflit de noms si vous voulez import datetime plus tard.

2voto

Amar Kumar Points 1482

Essayez ça :

Ajout de 5 jours à la date actuelle.

from datetime import datetime, timedelta

current_date = datetime.now()
end_date = current_date + timedelta(days=5) # Adding 5 days.
end_date_formatted = end_date.strftime('%Y-%m-%d')
print(end_date_formatted)

en soustrayant 5 jours de la date actuelle.

from datetime import datetime, timedelta

current_date = datetime.now()
end_date = current_date + timedelta(days=-5) # Subtracting 5 days.
end_date_formatted = end_date.strftime('%Y-%m-%d')
print(end_date_formatted)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X