mighty_warrior
Messages postés123Date d'inscriptionlundi 12 juin 2006StatutMembreDernière intervention 9 février 2010
-
26 janv. 2008 à 12:48
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 2021
-
27 janv. 2008 à 14:46
Bonjour,
Ca fait depuis ce matin que je me creuse la tête dans mon programme et Je me suis demandé si il était possible de récupérer la valeur correspondant aux minutes (mm) de ce code : label1.caption := FormatDateTime('hh:mm:ss',time); et la charger dans une variable integer (de même pour les secondes et les heures en fait).
FormatDateTime est une fonction qui retourne une valeur de type TDateTime (ou TDate, ou TTime) sous forme d'une chaîne.
Time renvoie l'heure en cours sous forme de TDateTime.
Il te faut incrémenter time avec une de ces fonctions fournies gracieusement par Delphi à partir de la version 5 : IncMilliSecond, IncSecond, etc...
Un exemple :
var
ATime: TTime;
ATime := IncSecond(ATime, 10); // tu ajoutes 10 secondes à ATime
Label1.Caption := TimeToStr(ATime);
// ou bien
Label1.Caption := FormatDateTime('hh:mm:ss', ATime);
Voir l'aide en ligne (touche F1) pour plus de détails.
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 27 janv. 2008 à 11:30
Je viens de te donner un exemple...
(au fait il faut déclarer DateUtils dans les uses)
Répété 348 299 fois au moins sur ce forum (+ 1 dans mon post plus haut) :
pour étudier une routine Delphi que tu ne connais pas (ça arrive), il faut mettre le mot en surbrillance et presser la TOUCHE F1 !!!
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 27 janv. 2008 à 12:19
Houlala...
Je te donne un exemple très concret.
Sur ton Form :
- 2 labels,
- 1 button.
Le code :
uses DateUtils;
procedure TForm1.Button1Click(Sender: TObject);
var
ATime: TTime; // une variable de type TTime
begin
ATime := Now; // tu affectes une valeur, Now par exemple
Label1.Caption := FormatDateTime('hh:mm:ss', ATime);
//Label1.Caption := TimeToStr(ATime); // <- plus simple
ATime := IncSecond(ATime, 20); // tu ajoutes 20 secondes à ATime
Label2.Caption := FormatDateTime('hh:mm:ss', ATime);
//Label2.Caption := TimeToStr(ATime); // <- plus simple
end;
mighty_warrior
Messages postés123Date d'inscriptionlundi 12 juin 2006StatutMembreDernière intervention 9 février 2010 26 janv. 2008 à 13:04
Excusez moi mais je me suis mal exprimé, ce n'est pas la récupération de la valeur qui me pose probléme mais c'est le fait d'additionner une valeur à FormatDateTime pour par exemple ajouter 10 secondes a un compteur.
encore désolé
Vous n’avez pas trouvé la réponse que vous recherchez ?
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 26 janv. 2008 à 13:16
... sinon,
type TDateTime = type Double;
Et la partie fractionnaire reflète la fraction d'une journée de 24 heures indépendamment du signe de la valeur TDateTime.
Par exemple, 6:00 am le 29/12/1899 est –1.25, et non –1 +0.25,ce qui reviendrait à–0.75.
Il n'existe pas de valeur TDateTime entre –1 et 0.
mighty_warrior
Messages postés123Date d'inscriptionlundi 12 juin 2006StatutMembreDernière intervention 9 février 2010 27 janv. 2008 à 13:03
merci beaucoup et encore désolé (pour la 348 301éme répétition) je sait que c'est agassant. Il faut dire qu'avec DateUtils dans les uses ça marche tout de suite mieux.