Comment puis-je imprimer l'année suivante si l'année en cours est indiquée en python en utilisant le code le plus simple, éventuellement sur une ligne en utilisant le module datetime.
Les objets date et datetime ont un attribut year
, qui est un nombre. Ajoutez simplement 1:
>>> from datetime import date
>>> print date.today().year + 1
2013
Si vous avez l'année en cours dans une variable, ajoutez simplement 1 directement, pas besoin de s'embêter avec le module datetime:
>>> year = 2012
>>> print year + 1
2013
Si vous avez la date dans une chaîne, sélectionnez simplement les 4 chiffres qui représentent l'année et passez-la à int
:
>>> date = '2012-06-26'
>>> print int(date[:4]) + 1
2013
L'arithmétique de l'année est extrêmement simple, faites-en un entier et ajoutez simplement 1. Cela ne devient pas beaucoup plus simple que cela.
Si, cependant, vous travaillez avec une date entière et que vous avez besoin de la même date mais un an plus tard, utilisez les composants pour créer un nouvel objet date
avec l'année incrémentée de un:
>>> today = date.today()
>>> print date(today.year + 1, today.month, today.day)
2013-06-26
ou vous pouvez utiliser le .replace
fonction, qui renvoie une copie avec le champ que vous spécifiez modifié:
>>> print today.replace(year=today.year + 1)
2013-06-26
Notez que cela peut devenir un peu délicat lorsque today
est le 29 février d'une année bissextile. La manière correcte absolue et sûre de travailler celle-ci est donc:
def nextyear(dt):
try:
return dt.replace(year=dt.year+1)
except ValueError:
# February 29th in a leap year
# Add 365 days instead to arrive at March 1st
return dt + timedelta(days=365)