IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Ajouter une semaine à une date


Sujet :

Python

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 347
    Par défaut Ajouter une semaine à une date
    bonjour,

    je cherche comme un coin dans une salle rond depuis deux heures;
    comment faire pour ajouter 1 semaine ou soustraire des jours à une datetime .

    j'ai trouvé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> today.replace(day=today.day+1)
    datetime.date(2008, 10, 3)
    mais évidement ça prend pas en compte les mois. donc si je fais -7 (retirer une semaine à ma date) ça plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> today.replace(day=today.day-7)
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    ValueError: day is out of range for month
    >>>
    Quand je pense que ça se faire en 3 secondes en PHP...

    bref, n'y-a-t-il pas un moyen simple en python de faire des ajouts de jour à une date au format datetime ?

    merci de votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Par défaut
    Avec datatime, il est possible de sommer et soustraire des dates
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    t=datetime.datetime(blabla1)
    u = datetime.datetime(blabla2)
    v=t+u
    Tu as essayé de bricoler quelque chose avec ça?

  3. #3
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Tu dois utiliser datetime.timedelta:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import datetime
    aujourdhui = datetime.datetime.today()
    semaine=datetime.timedelta(weeks=1)
    print aujourdhui + semaine

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 347
    Par défaut ok
    bonjour,

    merci de vos solutions.
    j'ai trouvé encore et extrement plus simple avec relativedelta
    http://labix.org/python-dateutil

    Ce module de fonctions sur les dates est tous simplement génial. Suffit de regarder les exemples pour comprendre.
    Ainsi 31janvier + 1 mois = 28 février ou 29 suivant l'année !

    super content !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/04/2014, 12h32
  2. [2008R2] Convertir une semaine en date
    Par ARONE dans le forum Développement
    Réponses: 3
    Dernier message: 26/03/2014, 17h45
  3. [AC-2007] DatePart (passage d'une semaine à une date)
    Par Damidou dans le forum VBA Access
    Réponses: 11
    Dernier message: 11/01/2013, 16h08
  4. Une semaine + une année = delai
    Par Boolean69 dans le forum Access
    Réponses: 6
    Dernier message: 26/06/2006, 10h16
  5. [D7] trouver un jour a partir d'une semaine et date
    Par raoulmania dans le forum Langage
    Réponses: 4
    Dernier message: 01/12/2005, 11h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo