Calculer le nombre d'heure travailler dans le mois

orankader 4 Messages postés lundi 22 août 2005Date d'inscription 29 décembre 2009 Dernière intervention - 19 déc. 2009 à 21:27 - Dernière réponse : dubois77 689 Messages postés jeudi 17 avril 2008Date d'inscription 9 mars 2018 Dernière intervention
- 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;
Afficher la suite 

13 réponses

Répondre au sujet
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 20 déc. 2009 à 10:43
0
Utile
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.
Commenter la réponse de cs_Delphiprog
amiga68 55 Messages postés dimanche 23 février 2003Date d'inscription 21 décembre 2009 Dernière intervention - 21 déc. 2009 à 07:23
0
Utile
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;
Commenter la réponse de amiga68
orankader 4 Messages postés lundi 22 août 2005Date d'inscription 29 décembre 2009 Dernière intervention - 29 déc. 2009 à 22:41
0
Utile
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;
Commenter la réponse de orankader
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 31 déc. 2009 à 12:42
0
Utile
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.
Commenter la réponse de cs_Delphiprog
tiesto08 7 Messages postés lundi 16 juin 2008Date d'inscription 8 juin 2013 Dernière intervention - 7 avril 2010 à 14:22
0
Utile
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
Commenter la réponse de tiesto08
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 7 avril 2010 à 23:27
0
Utile
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.


________________________________________________________
Commenter la réponse de f0xi
tiesto08 7 Messages postés lundi 16 juin 2008Date d'inscription 8 juin 2013 Dernière intervention - 8 avril 2010 à 15:50
0
Utile
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
Commenter la réponse de tiesto08
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 8 avril 2010 à 22:07
0
Utile
avec les fonctions contenues dans l'unité DateUtils.

________________________________________________________
Commenter la réponse de f0xi
tiesto08 7 Messages postés lundi 16 juin 2008Date d'inscription 8 juin 2013 Dernière intervention - 8 avril 2010 à 22:56
0
Utile
puisequ'il ya personne qui veux m'aider dites moi svp mon f1 de delphi ne marche pas comment faire pour le faire fonctionne,
Commenter la réponse de tiesto08
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 9 avril 2010 à 00:19
0
Utile
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.

________________________________________________________
Commenter la réponse de f0xi
tiesto08 7 Messages postés lundi 16 juin 2008Date d'inscription 8 juin 2013 Dernière intervention - 9 avril 2010 à 00:26
0
Utile
ya pas que le delphi dans la vie ""Aussi"", , et pour ton fameux tuyau, c'est pas drole du tout
Commenter la réponse de tiesto08
cs_Jean_Jean 639 Messages postés dimanche 13 août 2006Date d'inscription 5 mai 2016 Dernière intervention - 9 avril 2010 à 11:35
0
Utile
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
Commenter la réponse de cs_Jean_Jean
dubois77 689 Messages postés jeudi 17 avril 2008Date d'inscription 9 mars 2018 Dernière intervention - 9 avril 2010 à 16:43
0
Utile
"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
Commenter la réponse de dubois77

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.