PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Pointage
Iniciado por Ali OULED AMEUR, 12,nov. 2017 22:09 - 11 respuestas
Miembro registrado
5 mensajes
Publicado el 12,noviembre 2017 - 22:09
Bonjour à tous
Comment calculer une durée pour l'exemple suivant
ENTREE : le 11/11/2017 à 21h00
SORTIE : le 12/11/2017 à 06hh00
La durée doit être en nombre pour mes calculs et non en chaine
Merci chers développeurs
Ali Ouled Ameur
Miembro registrado
1.713 mensajes
Publicado el 13,noviembre 2017 - 01:41
Bonjour,
Essaye de voir du côté de DateHeureDifférence (https://doc.pcsoft.fr/fr-FR/?3027020)
Dans ton cas ça devrait donner ça (je suppose que tu veux une durée de travail en heure) :
FONCTION CalculerHeureTravail(dDateArrivée est une Date,hHeureArrivée est une Heure,...
dDateDépart est une Date,hHeureDépart est Heure):entier

dhArrivée est une DateHeure
dhDépart est une DateHeure
duDuréeTravail est Durée
nHeuresTravaillées est entier

dhArrivée=dDateArrivée+hHeureArrivée
dhDépart=dDateDépart+hHeureDépart

duDuréeTravail=ChaîneVersDurée(DateHeureDifférence(dhArrivée,dhDépart),duréeCentième)
nHeuresTravaillées=duDuréeTravail..Heure

RENVOYER nHeuresTravaillées


Exemple : CalculerHeureTravail("20171111","210000000","20171112","060000000") renvoie 9

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
5 mensajes
Publicado el 13,noviembre 2017 - 12:05
Merci BC
Miembro registrado
5 mensajes
Publicado el 13,noviembre 2017 - 19:47
Oui ça marche pour calculer la durée
mon problème c de convertir cette durée en heures hh:mm
Merci pour toute aide
//////////
dDateArrivée est une Date
hHeureArrivée est une Heure
dDateDépart est une Date
hHeureDépart est Heure

dhArrivée est une DateHeure
dhDépart est une DateHeure
duDuréeTravail est Durée
nHeuresTravaillées est entier

dhArrivée=dDateArrivée+hHeureArrivée
dhDépart=dDateDépart+hHeureDépart
//info(dhArrivée)
//Info(dhDépart)
duDuréeTravail=ChaîneVersDurée(DateHeureDifférence(dhArrivée,dhDépart),duréeCentième)
//info(ChaîneVersDurée(DateHeureDifférence(hHeureArrivée1,hHeureArrivée2),duréeCentième))
Info(ChaîneVersDurée(DateHeureDifférence(hHeureArrivée1,hHeureArrivée2),duréeCentième))

nHeuresTravaillées=duDuréeTravail..Heure
//nHeuresTravaillées=(DateHeureVersRéel(hHeureArrivée2,hHeureArrivée1))

//RENVOYERnHeuresTravaillées

//Exemple : CalculerHeureTravail("20171111","210000000","20171112","060000000") renvoie 9

nheures=?????????????????????????????
Miembro registrado
1.713 mensajes
Publicado el 14,noviembre 2017 - 01:41
2 choses :
Pour les calculs, il est préférable de conserver des variables de type durée.
Pour l'affichage, il faut utiliser DuréeVersChaine
On va modifier le code en conséquence :
Mode "Calcul" :
FONCTION CalculerHeureTravail(dDateArrivée est une Date,hHeureArrivée est une Heure,...
dDateDépart est une Date,hHeureDépart est Heure):durée

dhArrivée est une DateHeure
dhDépart est une DateHeure
duDuréeTravail est Durée

dhArrivée=dDateArrivée+hHeureArrivée
dhDépart=dDateDépart+hHeureDépart

duDuréeTravail=ChaîneVersDurée(DateHeureDifférence(dhArrivée,dhDépart),duréeCentième)

RENVOYER duDuréeTravail


Exemple : CalculerHeureTravail("20171111","210000000","20171112","060000000") renvoie 0090000000
Utilisation :
duDurée1 est durée
duDurée2 est durée
duDuréeTotale est durée
sDuréeAffichée est chaîne

duDurée1=CalculerHeureTravail("20171111","210000000","20171112","060000000") // renvoie 0090000000
duDurée2=CalculerHeureTravail("20171112","210000000","20171113","063000000") // renvoie 0093000000
duDuréetotale = duDurée1+duDurée2 //Valeur : 0183000000

sDuréeAffichée = DuréeVersChaîne(duDuréeTotale,"HH:MM") //Valeur 18:30


Pour calculer le salaire :
duDuréeTravail est durée
moSalaireHoraire est monétaire //Il est préférable de le mettre dans une constante de ton projet (une seule modif à faire et pas de risque d'oubli)
moSalaireAPayer est monétaire

duDuréeTravail=CalculerHeureTravail("20171111","210000000","20171112","060000000")
moSalaireAPayer=Arrondi(moSalaireHoraire*duDuréeTravail..EnHeures,2)


Je crois qu'on a bien dégrossi la variable de type durée
--
Il y a peut être plus simple, mais, ça tourne
Mensaje modificado, 14,noviembre 2017 - 01:42
Miembro registrado
648 mensajes
Popularité : +2 (2 votes)
Publicado el 16,noviembre 2017 - 12:26
Bonjour,
Personnellement je trouve moins compliqué d'utiliser seulement des variables de type réel pour le calcul des heures. Une simple soustraction permet ensuite d'obtenir la durée et un formatage pour afficher correctement.

Procedure HeureVersRéel(LOCAL hPHeure est Heure):réel
rHeureEnRéel est un réel

rHeureEnRéel=hPHeure..Heure+hPHeure..Minute/60

RENVOYER rHeureEnRéel
/////////////////
Procedure RéelVersHeure(LOCAL rPHeureEnRéel est réel):Heure
//partie décimale <=24H
hRésultatHeure est Heure
rPHeureEnRéel=Abs(rPHeureEnRéel)

hRésultatHeure..Heure=PartieEntière(rPHeureEnRéel)
hRésultatHeure..Minute=PartieDécimale(rPHeureEnRéel)*60

RENVOYER hRésultatHeure
/////////////
Procedure RéelVersDurée(LOCAL rDuréeEnRéel est réel):Durée
duRésultatDurée est une Durée
duRésultatDurée..Heure=PartieEntière(rDuréeEnRéel)
duRésultatDurée..Minute=PartieDécimale(rDuréeEnRéel)*60

RENVOYER duRésultatDurée

...
Je me suis fait une collection avec toutes les procédures qu'il faut pour ce type de calcul.
Thierry
Miembro registrado
5 mensajes
Publicado el 21,noviembre 2017 - 11:21
Vous êtes un ange merci cher ami
Miembro registrado
5 mensajes
Publicado el 21,noviembre 2017 - 11:39
Bravo Thierry

Voulez-vous m 'aider a importer un fichier texte d'une pointeuse

////// voila le texte

Date,ID,User Name,Department,Shift,Daily Schedule,First-In Time,Last-Out Time,Result,Over Time,WorkTime
11/17/2017,101,KAZI TAZ,Sorting,friday1st,friday1st Schedule,8:37,14:29,Normal,0:00,6:00
11/17/2017,102,ALI HASAN,Barcoding,friday3rd,friday3rd Schedule,15:01,21:02,Normal,0:00,6:00
11/17/2017,103,NC NIJAM,Box Collection,friday1st,friday1st Schedule,8:37,14:27,Normal,0:00,6:00
11/17/2017,104,RISAN,Cropping,SME Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,105,YASIR,Cropping,friday1st,friday1st Schedule,8:38,14:29,Normal,0:00,6:00
11/17/2017,107,BIPIN,Data Entry,4th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,108,BUPENDRA,Data Entry,friday2nd,friday2nd Schedule,9:11,14:58,Normal,0:00,6:00
11/17/2017,109,PRABIN,Data Entry,friday2nd,friday2nd Schedule,9:12,14:59,Normal,0:00,6:00
11/17/2017,110,SHAMBHU,Data Entry,friday2nd,friday2nd Schedule,9:11,14:59,Normal,0:00,6:00
11/17/2017,111,HASMTH,Drivers,friday1st,friday1st Schedule,8:38,0:00,Missing Out,0:00,0:00
11/17/2017,112,MD RAIS,Drivers,4th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,113,NIFRAZ,Drivers,1st Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,114,FAIROOS,Pinning,2nd Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,115,FAZIR,Pinning,4th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,116,HASSAN,Pinning,4th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,117,ISMAIL,Pinning,2nd Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,118,MD ABARUL,Pinning,friday1st,friday1st Schedule,8:37,14:30,Normal,0:00,6:00
11/17/2017,119,MD MUSTAFA ANSARI,Pinning,friday2nd,friday2nd Schedule,9:14,15:00,Normal,0:00,6:00
11/17/2017,120,MD NAVSHAD,Pinning,4th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,121,MUKTAR,Pinning,friday2nd,friday2nd Schedule,9:12,15:02,Normal,0:00,6:00
11/17/2017,123,RINAS,Pinning,friday4th,friday4th Schedule,15:36,21:21,Normal,0:00,6:00
11/17/2017,124,DEVDUNU,Processing,5th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,125,FAROOS,Processing,4th Shift,,6:11,0:00,Non Working day,0:00,0:00
11/17/2017,126,SAFEER,Processing,friday3rd,friday3rd Schedule,15:01,21:21,Normal,0:00,6:00
11/17/2017,127,THURAPSA,Processing,1st Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,128,ABDUL NAZEER H,Quality Analyst,SME Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,129,NASMEEN,Quality Analyst,4th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,130,SAMIM,Quality Analyst,friday3rd,friday3rd Schedule,15:00,21:24,Normal,0:00,6:00
11/17/2017,131,AMJAD KHAN,Quality Check,friday2nd,friday2nd Schedule,9:13,15:02,Normal,0:00,6:00
11/17/2017,132,REHMATH ALI,Quality Check,friday1st,friday1st Schedule,8:37,14:30,Normal,0:00,6:00
11/17/2017,133,AFTAB,Scanning,friday2nd,friday2nd Schedule,9:11,15:01,Normal,0:00,6:00
11/17/2017,134,ALAM ALI,Scanning,friday2nd,friday2nd Schedule,9:13,15:01,Normal,0:00,6:00
11/17/2017,135,ANBARUL,Scanning,5th Shift,,6:11,0:00,Non Working day,0:00,0:00
11/17/2017,136,ARSAD,Scanning,friday4th,friday4th Schedule,15:38,21:20,Normal,0:00,6:00
11/17/2017,137,MD ASLAM,Scanning,friday3rd,friday3rd Schedule,15:01,21:22,Normal,0:00,6:00
11/17/2017,138,MUZAMIL,Scanning,5th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,140,AHMED ALI,Sorting,2nd Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,141,ASARUDEEN,Sorting,SME Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,142,INDARA KUMAR,Sorting,friday1st,friday1st Schedule,8:40,14:30,Normal,0:00,6:00
11/17/2017,143,JAREETH,Sorting,5th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,144,AKRAM,Barcoding,friday1st,friday1st Schedule,8:37,14:34,Normal,0:00,6:00
11/17/2017,145,MD SAMSHAD,Sorting,friday3rd,friday3rd Schedule,15:09,20:51,Normal,0:00,6:00
11/17/2017,146,MUBARAK,Sorting,friday4th,friday4th Schedule,15:37,21:21,Normal,0:00,6:00
11/17/2017,147,RAJESH KUMAR,Sorting,friday4th,friday4th Schedule,15:36,21:21,Normal,0:00,6:00
11/17/2017,148,SADHAM,Sorting,friday2nd,friday2nd Schedule,9:11,14:59,Normal,0:00,6:00
11/17/2017,149,SAJAD,Sorting,friday2nd,friday2nd Schedule,9:12,14:59,Normal,0:00,6:00
11/17/2017,150,SHAID NADAF,Sorting,5th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,151,SUHAIL,Sorting,friday3rd,friday3rd Schedule,15:00,21:02,Normal,0:00,6:00
11/17/2017,152,TABREJ ALAM,Sorting,friday2nd,friday2nd Schedule,9:11,15:00,Normal,0:00,6:00
11/17/2017,153,MIM HUSSAIN,Pinning,5th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,154,ABDUL MALIK,Sorting,SME Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,155,Mohammad Raayes,Sorting,2nd Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,156,RIYAS,Pinning,friday2nd,friday2nd Schedule,8:37,14:30,Normal,0:00,6:00
11/17/2017,157,Mohammad Rafshan,Sorting,4th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,158,Mohammad Sajeed,Sorting,1st Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,159,DILSHAN RIZVI,Sorting,4th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,160,SUBAS KHADKA,Office Boy,friday3rd,friday3rd Schedule,15:02,21:01,Normal,0:00,6:00
11/17/2017,161,PRAWEJ SHEKH,Office Boy,friday2nd,friday2nd Schedule,9:12,15:02,Normal,0:00,6:00
11/17/2017,162,WASIM AHMED RANGREJ,Pinning,friday4th,friday4th Schedule,15:39,21:21,Normal,0:00,6:00
11/17/2017,163,MUHIBULLAH,Pinning,1st Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,201,NIHAD CEETHEERAKATH,IT,friday1st,friday1st Schedule,9:02,0:00,Missing Out,0:00,0:00
11/17/2017,202,Md JAID ANSARI,IT,friday1st,friday1st Schedule,8:36,0:00,Missing Out,0:00,0:00
11/17/2017,203,AHMED AIMAN,Supervisor,friday1st,friday1st Schedule,8:33,14:28,Normal,0:00,6:00
11/17/2017,204,SAMIM SABRIN,Supervisor,4th Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,205,SHAFI AHMED,Project Officer,Proj Off,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,206,MAHMAD RIYAZ,Data Entry,friday1st,friday1st Schedule,8:38,15:32,Normal,0:00,6:00
11/17/2017,208,SYED ABDUL HAKKIM,Data Entry,friday1st,friday1st Schedule,8:39,14:30,Normal,0:00,6:00
11/17/2017,209,KHAZA HUSSEN,Sorting,friday2nd,friday2nd Schedule,9:12,15:32,Normal,0:00,6:00
11/17/2017,210,FAIZ MUHAMMADU FALEEL,Pinning,SME Shift,,6:11,0:00,Non Working day,0:00,0:00
11/17/2017,211,NAUSAD MOHAMMAD,Pinning,friday1st,friday1st Schedule,8:38,14:30,Normal,0:00,6:00
11/17/2017,212,MOHAMMED RIFNAS,Pinning,1st Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,213,MOHAMED NISAM,Pinning,2nd Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,214,RISAN KALANTHAR,Drivers,1st Shift,,0:00,0:00,Non Working day,0:00,0:00
11/17/2017,215,MEERA SAHIB NALEEM,Pinning,friday3rd,friday3rd Schedule,15:02,21:02,Normal,0:00,6:00
11/17/2017,216,GULAME MUSTAFA,Pinning,friday4th,friday4th Schedule,15:38,21:21,Normal,0:00,6:00
11/17/2017,217,ARBIND KUMAR SAH,Pinning,friday2nd,friday2nd Schedule,9:12,15:01,Normal,0:00,6:00
11/17/2017,219,MOHAMMED NAZAR,Pinning,friday3rd,friday3rd Schedule,15:01,21:04,Normal,0:00,6:00
11/17/2017,220,MD INTEJAR SHEKH,Pinning,friday2nd,friday2nd Schedule,8:38,14:30,Normal,0:00,6:00
11/17/2017,221,MD MERAJ ISAK,Sorting,friday4th,friday4th Schedule,15:37,21:21,Normal,0:00,6:00
11/17/2017,223,SADARE ALAM ANSARI,Pinning,1st Shift,,0:00,0:00,Non Working day,0:00,0:00
//////////////////////

merci pour toute aide
Publicado el 22,noviembre 2017 - 16:22
j'hallucine avec le nombre d'exemple et la doc

pour ma part

je ramasse mon fichier avec une pelle le dépose dans sceau puis le vide sur mon serveur hfsql

au debut je me servait de la pelle mais courant d'air une partie envolé

apres pour les fichiers plus lourd je sais pas systeme de poulie tracto pelle

;(
Miembro registrado
1.713 mensajes
Publicado el 23,noviembre 2017 - 12:04
serge a écrit :
> apres pour les fichiers plus lourd je sais pas systeme de poulie tracto pelle


Perso j'utilise le trans-palettes, on y gagne dans la vitesse de tri.
Le gros problème est que Fenwick n'est pas en accès natif.
Je suis obligé de me rabattre sur la marque HImporteTexte

--
Il y a peut être plus simple, mais, ça tourne
Mensaje modificado, 23,noviembre 2017 - 12:08
Publicado el 23,noviembre 2017 - 12:11
Voroltinquo

idem

j'en avais marre a chaque client de donner un sceau et une pelle

surtout cette été bug dans le programme un enfants d'un client avec jouer avec le sceau sur la plage

j'allais pas tester toutes les possibilité
si machaine<>"Grain de sable"
// traitement
fin
apres les feuilles morte , la neige etc
Miembro registrado
36 mensajes
Publicado el 19,septiembre 2020 - 16:13
THIERRY TILLIER a écrit :
Bonjour,
Personnellement je trouve moins compliqué d'utiliser seulement des variables de type réel pour le calcul des heures. Une simple soustraction permet ensuite d'obtenir la durée et un formatage pour afficher correctement.

ProcedureHeureVersRéel(LOCALhPHeureestHeure):réel
rHeureEnRéelest un réel

rHeureEnRéel=hPHeure..Heure+hPHeure..Minute/60

RENVOYERrHeureEnRéel
/////////////////
ProcedureRéelVersHeure(LOCALrPHeureEnRéelest réel):Heure
//partie décimale <=24H
hRésultatHeureestHeure
rPHeureEnRéel=Abs(rPHeureEnRéel)

hRésultatHeure..Heure=PartieEntière(rPHeureEnRéel)
hRésultatHeure..Minute=PartieDécimale(rPHeureEnRéel)*60

RENVOYERhRésultatHeure
/////////////
ProcedureRéelVersDurée(LOCALrDuréeEnRéelest réel):Durée
duRésultatDuréeest uneDurée
duRésultatDurée..Heure=PartieEntière(rDuréeEnRéel)
duRésultatDurée..Minute=PartieDécimale(rDuréeEnRéel)*60

RENVOYERduRésultatDurée

...
Je me suis fait une collection avec toutes les procédures qu'il faut pour ce type de calcul.
Thierry


C’EST QUOI CA

--
DF