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 :

De la date delphi, en date normale ?


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 50
    Par défaut De la date delphi, en date normale ?
    Bonjour à tous



    Tout d'abord, je suis un débutant absolu sur Delphi.


    J'essaye de faire un tout petit programme, me permettant de transformer une heure delphi (exemple : 40176.37244) en heure et date normale (29/12/09 08H18).


    Quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FormatDateTime('"Nous sommes le" dd/mm/yyyy", il est "hh:ss',  40176.37244 ) ;
    j'obtiens bien la date et l'heure.



    j'aimerais que la valeur que je transforme ici en gras soit issu d'une valeur entrée dans un Tedit.


    Pourriez vous m'aider ?


    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Par défaut
    Salut ^^

    C'est pas compliqué.
    A la place de 40176.37244 tu veux la valeur d'un Tedit.

    La fonction demande en paramètre une variable extended (nombre à virgule).
    Le texte d'un Tedit se récupère avec la propriété text.
    Edit1.text par exemple. Edit1.text est un string et non un nombre à virgule donc on le convertit avec StrToFloat.

    On a au final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FormatDateTime('"Nous sommes le" dd/mm/yyyy", il est "hh:ss', StrToFloat(Edit1.text) ) ;

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 50
    Par défaut
    Merci pour ta réponse rapide !

    J'ai testé cependant ça ne marche pas, je pense qu'il y a un ptit truc qui doit me manqué


    j'ai un edit1, un button1 et un label1


    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
    var
      Form1: TForm1;
      DateChaine: string;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     
     
    //        40176.37244 = 29/12/09 08H18.
     
     
     
      DateChaine := FormatDateTime('dd/mm/yyyy hh:ss', StrToFloat(Edit1.text) ) ;
     
     
      label1.Caption:=datechaine;

    une variable qui va pas ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Par défaut
    Qu'est ce qui ne marche pas ?
    J'ai réutilisé le code que tu as posté juste avant et ca fonctionne très bien.

    cette valeur dans edit1 40176,37244 renvoit dans le label1 29/12/2009 08:18

    Mais attention ce n'est pas un point qu'il faut mettre mais une virgule !
    40176,37244 au lieu de 40176.37244

    Sinon tu as une erreur.
    ---------------------------
    Notification des exceptions du débogueur
    ---------------------------
    exception EConvertError avec le message ''40176.37244' n'est pas une valeur en virgule flottante correcte'.

  5. #5
    Membre Expert
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var
      V : double;
    begin
      if pos('.', Edit1.Text) then
        DecimalSeparator := '.'
      else
      if pos(',', Edit1.Text) then
        DecimalSeparator := ',';
     
      if TryStrToFloat(Edit1.Text, V) then
        Label1.Caption := FormatDateTime('dd/mm/yyyy hh:nn', V);
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  6. #6
    Membre averti
    Inscrit en
    Février 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 50
    Par défaut
    Merci à vous deux, en rajoutant DecimalSeparator := '.' dans le code je peux mettre indiferement 40176.37244 ou 40176,37244


    par contre, pourriez vous m'aiguiller : j'aimerais forcer mon Tedit pour qu'on puisse uniquement y inserer des numéros et des "." mais rien d'autre (pour éviter les erreurs) ... ?


    Merci

Discussions similaires

  1. [XL-2007] couleur cellule date differente si date passee, ou date du jour
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/03/2011, 08h24
  2. conversion de date (delphi/oracle)
    Par dolphins dans le forum Bases de données
    Réponses: 1
    Dernier message: 26/09/2005, 16h15
  3. Problem de Date (Delphi/Access)
    Par mobeida dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/04/2005, 18h14
  4. Date delphi et paradox
    Par matrix_ceg dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/12/2004, 14h38
  5. Prob avec dates delphi
    Par ericmart dans le forum ASP
    Réponses: 6
    Dernier message: 20/10/2003, 17h51

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