Calculer le nombre d'heure travailler dans le mois

orankader Messages postés 4 Date d'inscription lundi 22 août 2005 Statut Membre Dernière intervention 29 décembre 2009 - 19 déc. 2009 à 21:27
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 - 9 avril 2010 à 16:43
Bonjour tous le monde
j'ai un probmème dans mon programme sur DBgrid entrée sortie
le calcul sortie moins entrer se fait correctement total ligne.
exemple entrer sortie Total Ligne
8:00 16:00 8:00
8:00 16:00 8:00
8:00 16:00 8:00
8:00 16:00 8:00





Le problème je n'arrive pas à calculer le nombre heure.
Le calcul se fait très bien, mais une fois il dépasse les 24 heures sa remet à 00:00.
Pour cela si quelqu'un peut m'aider en corrigeant mon programme



procedure TForm1.Button3Click(Sender: TObject);
var somme,s : real;

begin
somme := 0;
table1.first; // se pointer vers le premier enregistrement de la table
while not(table1.eof) do // tanque on a pas arriver à la fin de la table
begin
somme := somme + table1.fieldbyname('Nbre_Heures').AsDateTime; // cumul des totaux
table1.next; // passer à l'enregistrement suivant.
end;
edit1.text := TimeToStr(somme); // afficher le cumul des totaux dans le comosant edit1

end;

13 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
20 déc. 2009 à 10:43
Bonjour orankader,

Quel SGBD utilises-tu ?
Peux-tu nous indiquer les instructions DDL de cette table ?


8000 Lévriers 'galgos' par an sont torturés et massacrés en Espagne
May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
amiga68 Messages postés 54 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 21 décembre 2009
21 déc. 2009 à 07:23
Bonjour,

La solution :

Ajoute DateUtils à la clause uses de ton unité, elle regorge de fonctions qui te permettront de résoudre ton problème :

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls,dateutils;

Tape HourOf quelque part dans ton code, presse F1 pour obtenir de l'aide et clique sur DateUtils : tu auras la liste de toutes les fonctions et procédures de l'unité (une mine !!!)

Je pense que HoursBetween, minutesbetweeen te seront d'un précieux secours pour calculer le tems de travail d'une journée, même si celle-ci débute à 21h00 et se termine le lendemain à 5h00
Tu ajoutes toutes les heures et minutes de chaque jour DateHeureDebut, DateHeureFin sont des TdateTime) et quelques mod 60 plus loin, tu obtiens le nombre total en heures, minutes et même secondes pour ceux qui sont payés à la seconde ☺

h := HoursBetween (DateHeureFin,DateHeureDebut);
m : = MinutesBetween(DateHeureFin,DateHeureDebut);
s := SecondsBetween (DateHeureFin,DateHeureDebut);

NbHeures : = h;
NbMinutes := m mod 60;
NbSecondes := s mod 60;
0
orankader Messages postés 4 Date d'inscription lundi 22 août 2005 Statut Membre Dernière intervention 29 décembre 2009
29 déc. 2009 à 22:41
Bonjour tous le monde LES DELPHICIEN qui peut trouver la solution Merci!

Mon problème persiste, Ami AMIGA68 votre réponse n'a pas résolut
le probmème dans mon programme sur DBgrid entrée sortie
le calcul sortie moins entrer se fait correctement total ligne.
exemple entrer sortie Total Ligne
8:00 16:00 8:00
8:00 16:00 8:00
8:00 16:00 8:00
8:00 16:00 8:00





Le problème je n'arrive pas à calculer le nombre heure.
Le calcul se fait très bien, mais une fois il dépasse les 24 heures sa remet à 00:00.
Pour cela si quelqu'un peut m'aider en corrigeant mon programme



procedure TForm1.Button3Click(Sender: TObject);
var somme,s : real;

begin
somme := 0;
table1.first; // se pointer vers le premier enregistrement de la table
while not(table1.eof) do // tanque on a pas arriver à la fin de la table
begin
somme := somme + table1.fieldbyname('Nbre_Heures').AsDateTime; // cumul des totaux
table1.next; // passer à l'enregistrement suivant.
end;
edit1.text := TimeToStr(somme); // afficher le cumul des totaux dans le comosant edit1

end;
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
31 déc. 2009 à 12:42
Ton problème est une chose mais si tu ne réponds pas aux sollicitations pour nous permettre de te donner une solution adaptée, ne viens spas pleurer que tu n'y arrives toujours pas !

De plus, ta solution de vouloir totaliser avec du code Delphi est largement inefficace

8000 Lévriers 'galgos' par an sont torturés et massacrés en Espagne
May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0

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

Posez votre question
tiesto08 Messages postés 7 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 8 juin 2013
7 avril 2010 à 14:22
Bonjour,

Svp j'ai une table qui comporte heure_arrivee et heure_depart.

dans le module de base de donnee je n'arrive pas a inserer l'heure pourtant j'ai mis type (T).

Merci
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
7 avril 2010 à 23:27
ne calcul/stock pas en format "time" mais en Minutes (LongWord).

8:00 (480) 16:00 (960) 8:00 (480) 480
8:00 16:00 8:00 480
8:00 16:00 8:00 480
8:00 16:00 8:00 480
8:00 16:00 8:00 480

total 480 * 5 2400

M total mod 60 0
H total div 60 40

heure tavaillées = 40:00 (format('%d:%.2d', [H, M]))


donc on recapitule :

entrée dans la base : DecodeTime puis
Debut = dH*60 + dM
Fin = fH*60 + fM
Total = Fin-Debut

sortie et affichage :
H = debut ou fin ou total div 60
M = debut ou fin ou total mod 60

total jours travaillé somme tout les champs total de la table compris entre debut et fin du mois.


________________________________________________________
0
tiesto08 Messages postés 7 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 8 juin 2013
8 avril 2010 à 15:50
Ok, Merci j'ai compris

comment faire pour calculer le nombre de jours du datetimepicker.

c'est a dire; j'ai une table qui comporte les champs suivants: tarif_jours * nomre_jours = TTC.

je travail avec ttable et datasource. aidez moi SVP Merci
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
8 avril 2010 à 22:07
avec les fonctions contenues dans l'unité DateUtils.

________________________________________________________
0
tiesto08 Messages postés 7 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 8 juin 2013
8 avril 2010 à 22:56
puisequ'il ya personne qui veux m'aider dites moi svp mon f1 de delphi ne marche pas comment faire pour le faire fonctionne,
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
9 avril 2010 à 00:19
Je te donne des indications ... donc je t'aide ... c'est un monde ça nom d'une crotte de mamouth!

menu Aide -> Aide delphi ...
y'a pas que F1 dans la vie, y'a le menu aide aussi.

________________________________________________________
0
tiesto08 Messages postés 7 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 8 juin 2013
9 avril 2010 à 00:26
ya pas que le delphi dans la vie ""Aussi"", , et pour ton fameux tuyau, c'est pas drole du tout
0
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
9 avril 2010 à 11:35
Comme tu dis Foxi! Crotte de bique!
C'est la jeunesse actuelle, il faut tout leur faire tout de suite!
Ils s'imaginent que tu es payé pour résoudre leur problème. Ils ont la haine de tous, qu'elle époque!
@ tiesto08, rares sont les personnes de la compétence de Foxi qui passe autant de temps à aider les autres! Te rends-tu compte de ton ingratitude?
si oui, alors tu es pardonné! sinon, il y a peu de chance pour que tu trouves de l'aide encore!
Bien à vous
Jean_Jean
0
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
9 avril 2010 à 16:43
"puisequ'il ya personne qui veux m'aider dites moi svp mon f1 de delphi ne marche pas comment faire pour le faire fonctionne,"
Télécharge winhelp32.exe


Dubois77
0
Rejoignez-nous