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 :

Obtenir les dates du 1er/2em/dernier jour du mois


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut Obtenir les dates du 1er/2em/dernier jour du mois
    Bonjour,

    Je suis débutant python et j'utilise python 2.7.6
    Je voudrais savoir les dates du :
    - 1er mercredi du mois
    - 2em jeudi du mois
    - Dernier jeudi du mois

    En théorie comment faut-il procéder ?

    Pouvez-vous m'aiguiller ?
    Merci.

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    les modules datetime et calendar disposent de fonctions assez poussées et qui aident bien

    dans l'idée on peut, pour le mois concerné, récupérer grace à calendar.monthrange() son nombre de jours, et ensuite simplement faire une boucle; "pour chaque jour du mois on garde le jour dans une liste si c'est un jeudi" par exemple, reste plus ensuite qu'à prendre le 2ème ou le dernier etc.

    quelque chose du genre :
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> import datetime, calendar, locale
    >>> locale.setlocale(locale.LC_TIME, 'fr_FR')  # histoire de se simplifier la vie plus bas avec strftime()
    'fr_FR'
    >>> t = datetime.datetime.today()
    >>> l = [i for i in range(1, calendar.monthrange(t.year, t.month)[1] + 1) if datetime.datetime(t.year, t.month, i).strftime('%A') == 'jeudi']
    >>> l
    [3, 10, 17, 24]

    edit: peut-être plus lisible comme ça:
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from locale import setlocale, LC_TIME
    from calendar import monthrange
    from datetime import datetime as dt
     
    setlocale(LC_TIME, 'fr_FR')
    t = dt.today()
    l = []
    for i in range(monthrange(*t.timetuple()[:2])[1]):
       if dt(t.year, t.month, i+1).strftime('%A') == 'jeudi':
          l.append(i+1)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    Bonsoir,

    Merci pour votre réponse.
    Mais je ne comprends pas ce que veut python.

    En console python :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> import datetime, calendar, locale
    >>> locale.setlocale(locale.LC_TIME, 'fr_FR')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib/python2.7/locale.py", line 579, in setlocale
        return _setlocale(category, locale)
    locale.Error: unsupported locale setting
    >>>

    Merci.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    Bonsoir,

    Ok j'ai trouvé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> import datetime, calendar, locale
    >>> locale.setlocale(locale.LC_TIME, 'fr_FR.UTF-8') 
    'fr_FR.UTF-8'
    >>> t = datetime.datetime.today()
    >>> l = [i for i in range(1, calendar.monthrange(t.year, t.month)[1] + 1) if datetime.datetime(t.year, t.month, i).strftime('%A') == 'jeudi']
    >>> l                                                                                                                                                                                                                                                                               
    [3, 10, 17, 24]                                                                                                                                                                                                                                                                     
    >>>
    Merci.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/02/2014, 18h11
  2. Réponses: 7
    Dernier message: 06/08/2013, 16h59
  3. Connaitre 1er et dernier jour du mois d'une date donnée
    Par kerido dans le forum Général Java
    Réponses: 4
    Dernier message: 14/05/2012, 14h18
  4. Trouver le 1er et dernier jour du mois
    Par Furil dans le forum Langage
    Réponses: 4
    Dernier message: 15/02/2012, 08h55
  5. Objet personnel - Calcul 1er et dernier jour du mois
    Par amiral59 dans le forum Deski
    Réponses: 8
    Dernier message: 26/04/2007, 08h42

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