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 :

Problème de gestion de la date avec TDateTime et IncHour ?


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Par défaut Problème de gestion de la date avec TDateTime et IncHour ?
    Bonjour,

    J'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    MyHeure := EncodeDate(StrToInt(Copy(MyStringList.Strings[1],30,5)),
    StrToInt(Copy(MyStringList.Strings[1],36,2)),
    StrToInt(Copy(MyStringList.Strings[1],39,2)));
     
    MyHeure := MyHeure + EncodeTime(StrToInt(Copy(MyStringList.Strings[1],42,2)),
    StrToInt(Copy(MyStringList.Strings[1],44,2)),0,0);
     
    // Traitement de l'heure d'hivers et d'été
    if GetTimeZoneInformation(MyTimeZoneInformation) = TIME_ZONE_ID_STANDARD then
         MyHeure := IncHour(MyHeure,1)
    else
         MyHeure := IncHour(MyHeure,2);
    Le problème, c'est qu'il ne gère pas le passage à la journée suivante...

    En effet, lorsque j'ajoute 02:00:00 à 11/07/2006 23:00:00, il devrait être 12/07/2006 01:00:00, cepandant, il reste est à : 11/07/2006 01:00:00...

    Savez-vous si c'est normal et comment faire pour gérer le passage à la bonne date lors de l'ajout d'heures

    Merci,
    Mathieu

  2. #2
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    IncHour semble fonctionner correctement sur mon poste avec ce code (Delphi 7) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.FormCreate(Sender: TObject);
    var
       d: TDateTime;
    begin
       d := EncodeDateTime(2006, 07, 11, 23, 0, 0, 0); 
       Showmessage(DateTimeToStr(d)); //Affiche "2006-07-11 23:00:00"
     
       d := IncHour(d, 2);
       Showmessage(DateTimeToStr(d)); //Affiche "2006-07-12 01:00:00"
    end;

  3. #3
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Est-ce que tu peux donner un exemple plus large avec la déclaration des variables (MyHeure entre autres) et la valeur des inconnus (tels que MyStringList.Strings[1] par exemple) ?

    Merci!

  4. #4
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Par défaut
    Salut,

    Alors voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyHeure : TDateTime;
    Et mes lignes barbares servent à récupérer la date et l"heure se trouvant comme ça :
    Jul 12, 2006 - 02:00 AM EDT / 2006.07.12 0600 UTC
    Merci,
    Mathieu

  5. #5
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut,

    Tout comme SlimJoe, j'ai effectué un test avec le code de ton 1°post et IncHour marche correctement.

    Bon courage,
    @+

  6. #6
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Par défaut
    Bonjour,

    Je viens de tester avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
         MyHeure : TDateTime;
    begin
         MyHeure := Now;
         Edit1.Text := FormatDateTime('dd/mm/yyyy hh:nn:ss', MyHeure);
         MyHeure := IncHour(MyHeure,StrToInt(Edit2.Text));
         Edit3.Text := FormatDateTime('dd/mm/yyyy hh:nn:ss', MyHeure);
    end;
    Et en effet, ça marche très bien...

    Je vais logger toutes les informations et chercher d'où viens ce problème de gestion de date.

    Je vous tiens au courant dans la soirée.

    Merci,
    Mathieu

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/12/2014, 12h25
  2. Gestion de la Date avec GregorianCalendar
    Par armelfrancis dans le forum Général Java
    Réponses: 1
    Dernier message: 26/02/2012, 12h42
  3. Problème de gestion de champ Date
    Par habasque dans le forum JSF
    Réponses: 2
    Dernier message: 10/12/2007, 18h15
  4. [TFrame] Problème de gestion du OnMouseDown avec une Frame
    Par xherault dans le forum Composants VCL
    Réponses: 5
    Dernier message: 23/05/2003, 15h35

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