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

771voto

Béres Botond Points 4398

Les réponses précédentes sont correctes mais c'est généralement une meilleure pratique à suivre :

import datetime

Alors vous aurez :

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

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

9 votes

Datetime.datetime - pourquoi deux fois ?

91 votes

Une importation comme "from datetime import datetime, timedelta" ajouterait de la lisibilité au code

11 votes

@paulmorriss : Vous êtes en train d'appeler la strptime sur la méthode datetime dans la classe datetime vous devez donc spécifier datetime.datetime .

164voto

DrTyrsa Points 14349

Importation timedelta d'abord.

from datetime import timedelta

Et Date.today() retournera la date d'aujourd'hui, mais vous pouvez vouloir

EndDate = Date + timedelta(days=10)

12 votes

Datetime.date.today() au lieu de Date.today()

2 votes

@dan-klasson Cela ne fonctionne pas pour moi, date l'objet n'a pas timedelta méthode. Quelle version de Python utilisez-vous ?

0 votes

@DrTyrsa Ma faute. Ca devrait être : from datetime import timedelta, date; date.today() + timedelta(days=10)

33voto

fantabolous Points 431

Si vous utilisez déjà pandas, vous pouvez gagner un peu de place en ne spécifiant pas le format :

import pandas as pd
startdate = "10/10/2011"
enddate = pd.to_datetime(startdate) + pd.DateOffset(days=5)

0 votes

Cela a bien fonctionné pour moi. Merci

0 votes

Merci, ça a marché pour moi

2 votes

Je veux juste noter que l'installation de pandas juste pour ça est vraiment exagérée.

22voto

Pradeep Subash Points 41

Cela pourrait aider :

from datetime import date, timedelta
date1 = date(2011, 10, 10)
date2 = date1 + timedelta(days=5)
print (date2)

17voto

Jorge Omar MH Points 314

Si vous voulez ajouter des jours à la date maintenant, vous pouvez utiliser ce code

from datetime import datetime
from datetime import timedelta

date_now_more_5_days = (datetime.now() + timedelta(days=5) ).strftime('%Y-%m-%d')

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