mezaouri
Messages postés4Date d'inscriptionlundi 13 mars 2006StatutMembreDernière intervention23 mars 2006
-
20 mars 2006 à 13:52
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 2022
-
21 mars 2006 à 23:19
bonjour,
je voudrais utiliser l'heure du system comme parametre de calcul afin de calculer un volume en temps reel connaissant l'heure du debut et le debit de remplissage d'une citerne par ex.
en utilisant
maskEdit1.Text:= TimeToStr(now); // heure actuelle
comment figer heure actuelle pour effectuer la difference de temps (debut replissage-heure actuelle) a n' importe quel moment???
Merci
A voir également:
Figer l'heure afin de l'utiliser comme parametre de calcul
et pour transformer ces MilliSecondes en Temps (TDateTime) :
function MsToTime(const Ms : cardinal) : TDateTime;
begin
Result := EncodeTime( Ms div 3600000, (Ms div 60000) mod 60,
(Ms div 1000) mod 60, Ms mod 1000);
mezaouri
Messages postés4Date d'inscriptionlundi 13 mars 2006StatutMembreDernière intervention23 mars 2006 21 mars 2006 à 15:07
merci d'y avoir repondu j'apprecie ce geste, je trouve la reponse de foxi est tres complete sauf que je suis novice et je ne veux precipiter les choses et m'enfoncer encore plus j'ai utilise la methode la plus elementaire que voici,
procedure TForm1.Timer1Timer(Sender: TObject);
begin
timer1.Enabled:=true;
maskedit2.Text:=timetostr(now);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled :=false; // afin de stoper l'horloge
label1.Caption:=floattostr(strtotime(maskedit2.text)-strtotime(maskedit1.text));
et ça marche!eureka!!Sauf qu'a l'oppose de fOxi je dois convertir le format time H:M:S en decimales (minutes) et la je suis plante.
merci encore.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202237 21 mars 2006 à 23:19
je suis d'accord, les convertions sont assé complexe a comprendre mais si simple a la fois.
GetTickCount renvois des millisecondes.
pour transformer ces millisecondes en temps HMSZ il faut connaitre ce principe tout simple :
Seconde = MS / 1000 (1000 ms/sec)
Minutes = MS / 1000 / 60 (1000ms/sec et 60 sec/min)
Heures = Ms / 1000 / 60 / 60 (1000ms/sec et 60sec/min et 60min/heure)
c'est simple non ?
en tout cas c'est ce qu'il y a de plus precis.
maintenant les types :
GetTickCount renvois un entier non signé 32 bits (cardinal / LongWord)
Time, Now renvois un Double (TDateTime) un flottant donc.
pour obtenir H,M,S et Z par rapport a un Time ou Now il suffit d'utiliser DecodeTime de l'unité sysutils et inversement obtenir un TDateTime par rapport a HMSZ on utiliseras EncodeTime de la meme unité.