Calculer un intervale de temps

Résolu
codial Messages postés 265 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 5 mai 2015 - 25 févr. 2008 à 18:30
codial Messages postés 265 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 5 mai 2015 - 26 févr. 2008 à 16:48
Bonjour,


Si le sujet à déja été traité je m'en excuse d'avance, mais bizarrement je ne trouve rien sur le net.

Pourtant un sujet qui me semble simple, mais bon je n'y arrive pas.

Sur une feuille de temps je cherche le moyen de calculer le temps écoulé entre deux heures h1 et  h2 et ensuite d'additionner les résulats trouvés.

Si quelqu'un peut m'aider

D'avance merci 

Cordialement 

7 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
26 févr. 2008 à 11:37
Bon, on ne va pas te laisser mariner dans ton jus trop longtemps quand même.
A l'heure qu'il est est, tu as bien dû faire une dizaine de kilomètres.

Primo : transformer les chaines saisies dans les TEdit en TTime (qui sont en réalité des réels)

Deuxio : effectuer la soustraction des deux valeurs de temps

tertio : convertir le résultat en une chaine et l'afficher dans le troisième TEdit.

Voila pour le principe.
Concrétement ?

procedure TForm1.Button1Click(Sender: TObject);
var
  T1, T2: TDateTime;
begin
  if TryStrToTime(Edit2.Text, T1) and TryStrToTime(Edit3.Text, T2) then
    Edit4.Text := TimeToStr(T2 - T1);
end;

Bon, on te laisse gérer la vérification que T2 soit supérieure à T1.

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
3
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
25 févr. 2008 à 18:57
Salut,

quand on sait pas et on ne trouve pas on peut aussi tester ...

tout bêtement :

procedure TForm1.Button1Click(Sender: TObject);
Var Time1, Time2 : TTime;
begin
  Time1 := GetTime;
  Time2 := EncodeTime(12,00,00,00);
  Label1.Caption := TimeToStr( Time2 - Time1 );
end;

 
@+
Cirec

<hr siz ="" />
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
26 févr. 2008 à 00:01
On peut aussi prendre quelques vitamines, aller faire un jogging, etc.

Ben alors Codial, un gros coup de fatigue ?

May Delphi be with you !
<hr color="#008000" />Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
codial Messages postés 265 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 5 mai 2015 1
26 févr. 2008 à 10:34
Bonjour à vous deux!


Delphiprog, ça va?


Bon merci pour vos conseils éclairés! Il est vrai que je ne connais pas encore toutes les fonctions de temps.


Bon, j'ai deux TEdit dans lesquels je saisi une heure de départ et une heure d'arrivée au format --:-- et dans un troisième je cherche à afficher le temps passé.


Devinez quoi? Je continue de chercher!!!


Bon je vais peut être aller faire un jogging comme le suggère delphiprog


Cordialement


Codial
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
codial Messages postés 265 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 5 mai 2015 1
26 févr. 2008 à 13:13
Bonjour Delphiprog,


Je rentre de mon jogging  et vraiment merci pour le coup de main.
C'est une question qui vous a semblé surement triviale, mais moi je colle et je ne pense que j'y serait arrivé tout seul et en plus je ne trouvais rien sur le net!


par exemple TryStrToTime je ne connaissais pas !!


Pour ce qui est de vérifier si T2 est supérieur à T1, c'est bon!


Merci pour le coup de main.


Cordialement




 
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
26 févr. 2008 à 13:30
@Delphiprog

Salut,
Tu disais :
"Bon, on te laisse gérer la vérification que T2 soit supérieure à T1"
mais ce n'est pas utile la fonction se charge de tout ...
le résultat renvoyé est toujours correct ... j'ai testé 

 
@+
Cirec

<hr siz="" />
0
codial Messages postés 265 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 5 mai 2015 1
26 févr. 2008 à 16:48
Bonjour,


je reviens à la charge pour le calcul de mes heures


Je dois calculer les temps de trajet et les temps de chantier par feuille de pointage, ça


c'est fait grace à vous!


Maintenant je voudrais cumuler les heures trajet chantier par chantier.


J'ai commencé à écrire cette requête pour la somme des heures du chantier:


 WITH TIBSQL.create(nil) do
  begin
  Database:= DM.idbProjets;
  SQL.Clear;
  SQL.Text:='SELECT SUM(FEUDUREECHANTIER) FROM FEU WHERE FEUCOD STARTING with ''' +


IntToStr(DM.ibdFeuFEUCOD.value) + '''';
  ExecQuery;
  showmessage(Fields[0].asstring);
  Close;
  end;
end;


Mais bon, ça ne fonctionne pas


Le champ FEUDUREECHANTIER est un VARCHAR au format --:--


Un petit coup de main?


Cordialement


 


 
0
Rejoignez-nous