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

C++Builder Discussion :

Résultats erroné différence entre deux types TDateTime


Sujet :

C++Builder

  1. #1
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 90
    Points : 78
    Points
    78
    Par défaut Résultats erroné différence entre deux types TDateTime
    Si quelqu’un si me dire comment avoir un résultat juste pour faire la difrferance de deux Type Time Date, moi sa me donne résultats erroné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TDateTime D1= DateTimePicker1->Date;
    TDateTime D2= DateTimePicker2->Date;
    TDateTime D3=D1-D2;
    Label1->Caption=DatetoStr(D3);//il me donne resultat erroné!!
    merci

  2. #2
    Membre régulier
    Avatar de bebeours
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 103
    Points : 123
    Points
    123
    Par défaut
    Extrait de l'aide BCB sur le TDateTime :
    La partie entière d'une valeur TDateTime représente le nombre de jours qui se sont écoulés depuis le 30/12/1899. Sa partie fractionnaire représente l'heure.
    Je pense que ça peut t'aider à comprendre le résultat que tu obtiens.

  3. #3
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 90
    Points : 78
    Points
    78
    Par défaut
    J’avais déjà lu ça dans le help , mais j’avoue que je n’ai rien compris!!Parce que le résultats que j’obtiens est sous forme date time : :

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    La différence entre 2 TDateTime est bien un TDateTime. Mais un TDateTime est un "double" dont la partie entière représente un nombre de jour et la partie fractionnaire une fraction de jour. Donc pour avoir la différence entre 2 dates il faudrait faire

    int jour=int(D3);

    Label1->Caption=IntToStr(jour) +" jour" +D3.FormatString("hh:nn:ss");

    ou :

    Label1->Caption=IntToStr(jour) +" jour" +D3.FormatString("hh 'heures' nn 'minutes' ss 'secondes'");

  5. #5
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 90
    Points : 78
    Points
    78
    Par défaut
    merci Pasquali
    J’ai fais comme vous avez indiqueé, mais je ne sais pas j’ai se decalage
    Je m’explique: quand je fais D1=13/03 /2004 e D2=13/03/2004
    D3 me donne 0 le même résultats quand je mets D1=14/03/2004
    Et quand je mets D1=15/03/2004 D3 ca me donne =1

  6. #6
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Bonjour,

    As-tu essayé avec la fonction DaysBetween ?
    En effet, il peut y avoir des erreurs dues à l'arrondi avec TDateTime. Peut être peux-tu rajouter 1 ou 2 heures à la deuxième date si il s'agit juste d'obtenir une différence de jours. C'est peu propre, mais ca peut permettre que ça marche, à défaut d'une réponse correcte.

    Cordialement,

    Arnaud

  7. #7
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 90
    Points : 78
    Points
    78
    Par défaut
    Merci Arnaud.
    Je pense que le problème dans TdateTime est quand on fais la différence ou bien on somme deux Date il les transforme en 24 heur , donc il prend en considération l’heur de la création deTdateTimePicker..
    Mille merci

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

Discussions similaires

  1. Différence entre deux variables de type java.util.Date
    Par hetlar dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 30/08/2012, 07h04
  2. Réponses: 7
    Dernier message: 29/11/2010, 12h26
  3. Différences entre deux TDateTime ?
    Par [ZiP] dans le forum Langage
    Réponses: 4
    Dernier message: 05/03/2008, 11h37
  4. différence entre deux dates : des résultats curieux
    Par Herode dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/04/2007, 17h14
  5. Réponses: 2
    Dernier message: 13/03/2007, 16h57

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