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

 Delphi Discussion :

Comparaison date <= ne marche pas


Sujet :

Delphi

  1. #1
    Membre expert
    Avatar de vpourchet
    Homme Profil pro
    Integrateur Systemes & Virtualisation
    Inscrit en
    Avril 2008
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Integrateur Systemes & Virtualisation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 159
    Points : 3 645
    Points
    3 645
    Par défaut Comparaison date <= ne marche pas
    bonjour, j'essaies dans mon prgramme de comparer deux dates, en fait je dois tester un intervalle de ce type :

    01/06/2009 <=01/06/2009<= 31/06/2009

    voici le code de ma condtion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if ((EncodeDate(strtoint(Node.text), strtoint(listMois.strings[i]), 1) <= dtpAu.Date) and ((EncodeDate(strtoint(Node.text), strtoint(listmois.strings[i]),1) >= dtpDu.date))) then begin
    ...
    ...
    end;
    j'ai testé avec des ShowMessage mais j'ai l'impression que seul le premier test marche, en fait j'ai limpression que c'est le '<=' qui foire quand mes dates sont égales.

    le jeu de donné était le suivant :

    date a comparer : 01/06/2009
    intervalle mini : 01/06/2009
    intervalle maxi : 15/06/2009

  2. #2
    Membre expert
    Avatar de vpourchet
    Homme Profil pro
    Integrateur Systemes & Virtualisation
    Inscrit en
    Avril 2008
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Integrateur Systemes & Virtualisation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 159
    Points : 3 645
    Points
    3 645
    Par défaut
    résolu avec DaysBetween(d1,d2) >= 0

    edit : en fait non cela ne marche pas etant donné que delphi me retourne un entier positif quand je compare mes dates je ne peut pas savoir si elles sont comprises dans l'intervalle.

    quelqu'un aurait il une suggestion ?

  3. #3
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Dans ton test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (EncodeDate(strtoint(Node.text), strtoint(listMois.strings[i]), 1) <= dtpAu.Date)
    probablement que dtpAu.Date contient également une heure.

    Comme en Delphi les TDateTime sont codés avec la partie entière correspondant a la date, et la partie décimale correspondant a l'haure, ton problème vient de là!

    essai de tronquer (enlever la partie décimale) la valeur de ta date:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (EncodeDate(strtoint(Node.text), strtoint(listMois.strings[i]), 1) <= Trunc(dtpAu.Date))

  4. #4
    Membre expert
    Avatar de vpourchet
    Homme Profil pro
    Integrateur Systemes & Virtualisation
    Inscrit en
    Avril 2008
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Integrateur Systemes & Virtualisation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 159
    Points : 3 645
    Points
    3 645
    Par défaut
    merci, j'ai bien essayé le Trunc mais cela ne marche toujours pas. De plus, la date est extraite d'un dateTimePicker mais sans heure/minutes/secondes donc le format est correct .

  5. #5
    Membre expert
    Avatar de vpourchet
    Homme Profil pro
    Integrateur Systemes & Virtualisation
    Inscrit en
    Avril 2008
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Integrateur Systemes & Virtualisation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 159
    Points : 3 645
    Points
    3 645
    Par défaut
    en fait si, ca marche merci beaucoup sat83

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

Discussions similaires

  1. fonction date() qui ne marche pas
    Par Décibel dans le forum Runtime
    Réponses: 11
    Dernier message: 03/08/2010, 20h36
  2. [XL-2007] macro filtrer date a date enregistree ne marche pas
    Par petahum dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/11/2009, 18h57
  3. Mon test sur la date ne marche pas
    Par dachir dans le forum Access
    Réponses: 7
    Dernier message: 12/08/2006, 10h23
  4. [RegEx] Comparaison de chaine qui ne marche pas
    Par taki_38 dans le forum Langage
    Réponses: 6
    Dernier message: 22/06/2006, 20h41
  5. une comparaison qui marche pas.
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/02/2004, 15h59

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