PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV (earlier versions) → Pointage
Pointage
Started by Ali OULED AMEUR, Nov., 12 2017 11:09 PM - 11 replies
Registered member
5 messages
Posted on November, 12 2017 - 11:09 PM
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
Registered member
3,883 messages
Popularité : +227 (347 votes)
Posted on November, 13 2017 - 2:41 AM
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
Registered member
5 messages
Posted on November, 13 2017 - 1:05 PM
Merci BC
Registered member
5 messages
Posted on November, 13 2017 - 8:47 PM
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=?????????????????????????????
Registered member
3,883 messages
Popularité : +227 (347 votes)
Posted on November, 14 2017 - 2:41 AM
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
Message modified, November, 14 2017 - 2:42 AM
Registered member
1,144 messages
Popularité : +50 (142 votes)
Posted on November, 16 2017 - 1:26 PM
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
Registered member
5 messages
Posted on November, 21 2017 - 12:21 PM
Vous êtes un ange merci cher ami
Registered member
5 messages
Posted on November, 21 2017 - 12:39 PM
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
Posted on November, 22 2017 - 5:22 PM
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

;(
Registered member
3,883 messages
Popularité : +227 (347 votes)
Posted on November, 23 2017 - 1:04 PM
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
Message modified, November, 23 2017 - 1:08 PM
Posted on November, 23 2017 - 1:11 PM
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
Registered member
52 messages
Popularité : -4 (4 votes)
Posted on September, 19 2020 - 5:13 PM
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