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 :

date -> réel


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Par défaut date -> réel
    Bonjour,

    Je voudrai faire une fonction pour verifier si une date est un jour férié.
    Je suis bloqué sur la transformation d'une date en String que je dois transformer en Réel pour le calcul des fériés mobiles.
    J'ai cherché dans les module Time et Datetime, mais je ne trouve ou ne comprends rien.

    Merci

  2. #2
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Je ne connais pas les module sus-nommé.

    En revanche, pourquoi ne fait tu pas un dictionnaire avec les jour fériés de ce genre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jourferie ={1ermai:0105,8mai:0805,noel:2512}
    Ensuite te parcour ce dictionnaire avec ta date s'il elle est dedans il te retourne le nom du jour férié.

    Ps : je ne sais pas sous qu'elle forme python nous retourne la date, si c'est comme en perl, ca doit etre un truc du genre.

    date=jjmoisannée-1900

    par exemple aujourd'hui : 1403107

    Je ne sais pas si je reponds a ta question.

    Cordialement.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> import time
    >>> print time.strftime("%d/%m/%Y")
    14/03/2007
    >>> print time.strftime("quantieme: %j")
    quantieme: 073
    C'est ça qu'il te faut?

  4. #4
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Tu veux la date sous forme d'integer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> date=time.strftime("%d/%m/%Y")
    >>> date.split("/")
    >>> jour=int(date[:2])
    >>> mois=int(date[3:5])
    >>> annee=int(date[6:10])
    >>> print jour,mois,annee
    14 3 2007
    >>> type(jour)
    <type 'int'>

    Je pense que tu as tout ce qu'il te faut.

    Merci a pacificator
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  5. #5
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Par défaut
    Parp1 :

    Ta solution ne va pas car les dates comme Paques sont mobile et ma fonction doit est exate pour n'importe quelle année.

    Pacificator :

    Non car je dois recevoir un réel a partir de l'epoch.

  6. #6
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Tu connais l'algoritme qui donne les jours fériés de l'année??

    Deja si tu as ca ca nous aidera bien a cerné le sujet.

    La avec nos solutions on te fournit, le jour de l'année sur les 365.
    Le jour, le mois et l'année en Integer.

    Il faudra bien que tu te repere dans l'année pour situer tes jours fériés... Ca tombe bien les jours on des numero pour qu'on s'y retrouve.
    Je ne vois pas comment tu ne peux pas utiliser ces données....
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  7. #7
    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 devrais pouvoir t'en sortir avec les options
    %j pour le quantieme
    %I pour le numero de la semaine
    %w pour le numero du jour dans la semaine
    cf la doc

    Pour convertir le nombre de seconde depuis epoch, il faut utiliser la fonction localtime
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> sec = 666666666
    >>> print time.strftime("quantieme: %j" , time.localtime(sec))
    quantieme: 047
    >>> print time.strftime("%d %m %Y", time.localtime(sec))
    16 02 1991

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 89
    Par défaut module time
    La doc :
    http://docs.python.org/lib/module-time.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import time
     
    # secondes depuis epoch
    t=time.time()
    print t
     
    #convertir une string en un struct_time (tuple)
    s='2007-02-14'
    stotime = time.strptime(s,'%Y-%m-%d')
    print stotime
     
    # convertir un struc-time en secondes
    sec=time.mktime(stotime)
    print sec
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1173905526.9
    (2007, 2, 14, 0, 0, 0, 2, 45, -1)
    1171407600.0
    @++

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

Discussions similaires

  1. Affichage de la date en temps réel
    Par Jiyuu dans le forum Tkinter
    Réponses: 5
    Dernier message: 15/04/2008, 19h14
  2. retrouver la journée relative à une date
    Par maxonman dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 29/11/2007, 13h33
  3. Dates relatives à la date courante
    Par bros_70 dans le forum Langage
    Réponses: 5
    Dernier message: 09/03/2007, 19h48
  4. Réponses: 4
    Dernier message: 16/06/2006, 03h29

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