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

Langage Delphi Discussion :

problème de date


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut problème de date

    Bonjour,

    mon soucis est le suivant : j'ai une variable string représentant une date :
    '11 Janvier 2010'

    je n'arrive pas à la formater en un DateTime.

    Quelqu'un a t'il une idée ?

    A+

    windows 10 / DEBIAN 7.9 / Etc...

  2. #2
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    si tu veux utiliser strtodate, il faut convertir ta variable sous la forme JJ/MM/AA
    et donc remplacer le mois par son numéro, et en extrayant l'année puis le mois

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par CharleLéo Voir le message


    Quelqu'un a t'il une idée ?

    A+
    Un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    function MyStrToDate(Date: String): TDate;
    Var
      d,m,y : Word;
      Mois: String;
    begin
      Result := Now;
      d     := StrToInt(LeftStr(Date,2)); // On à le jour
      y     := StrToInt(RightStr(Date,4)); // On à l'année
      Mois  := MidStr(Date,4,Length(Date)-5); // on récupère le mois en lettre
      Case AnsiIndexStr(Mois,['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre']) of
        0: m := 1;
        1: m := 2;
        2: m := 3;
        3: m := 4;
        4: m := 5;
        5: m := 6;
        6: m := 7;
        7: m := 8;
        8: m := 9;
        9: m := 10;
        10: m := 11;
        11: m := 12;
      end;
     
      Result := EncodeDate(y,m,d);
    end;
    Tu auras besoin déclarer StrUtils;

    Si tu est sur de la donnée texte, tu peux simplifier en évitant le case
    du Genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m := 1 + AnsiIndexStr(Mois,['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'])
    Sinon, si tu n'est pas sur de la donnée texte, tu peux aussi ajouter une écriture différente genre 'jan','fev', etc... et jouée avec l'integer retourner.

    Je l'ai pas testé, mais sa doit le faire..


  4. #4
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    merci buzz de ta transcription en langage claire (delphi ) de mes idées trop peu explicites pour cause d'une journée très chargée et d'une heure trop tardive.

    Moralité ne jamais répondre à une demande d'aide avant d'aller se coucher.

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Attention tout de même au jour qui pourrait n'être codé que sur un caractère .

    Egalement une petite simpification du case:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m := AnsiIndexStr(Mois,['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre']) +1;

  6. #6
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Egalement une petite simpification du case:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m := AnsiIndexStr(Mois,['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre']) +1;
    Salut @AndNotOr,

    Tu vois une différence avec ma proposition (dans mon premier post) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m := 1 + AnsiIndexStr(Mois,['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre']);

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Sorry Boy, j'avais à nouveau lu en diagonale

Discussions similaires

  1. Problème de date dans requête de màj imbriquée
    Par VirginieGE dans le forum Langage SQL
    Réponses: 11
    Dernier message: 20/07/2004, 15h34
  2. problème de date
    Par baboune dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 10/06/2004, 10h52
  3. Problème de date dans MONTHS_BETWEEN
    Par ghostlord79 dans le forum Oracle
    Réponses: 10
    Dernier message: 07/04/2004, 11h21
  4. Problème conversion date
    Par mat.M dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2004, 15h05
  5. Encore un probléme de date avec TADO !
    Par bNoureddine dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2004, 18h22

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