Gestion des heures [Résolu]

Messages postés
5
Date d'inscription
dimanche 16 novembre 2014
Dernière intervention
18 novembre 2014
- 16 nov. 2014 à 15:15 - Dernière réponse :
Messages postés
23253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 17 nov. 2014 à 23:36
salut à tous, j'ai un souci que j'explique: En effet je développe une application sur Windev 17 qui gère les retards des employés, mon souci est que je n'arrive pas à obtenir le temps de retard en minutes. Voici ce que j'ai fais et jusqu'à présent et je n'ai pas encore le résultat escompté:


nMinutes est un entier = HeureDifférence("0730",SAI_Heur_arrivé )
nMinutes = nMinutes/3600
Info(nMinutes)

quand j'entre pas exemple l'heure d'arrivée 08:00, je devrais avoir 30 comme résultat mais c'est plutôt 50 qu'il envoie comme résultat.
j'aimerais bénéficier de votre aide. Merci
Afficher la suite 

Votre réponse

8 réponses

Messages postés
14299
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 16 nov. 2014 à 15:17
0
Merci
Bonjour,

Je ne connais pas Windev, mais l'heure ne devrait-elle pas être exprimée 07:30 au lieu de 0730 ?
Commenter la réponse de NHenry
Messages postés
23253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- Modifié par jordane45 le 16/11/2014 à 20:53
0
Merci
A mon avis c'est 50 ( pour 0,50) qu'il te retourne ... soit 1/2 * 60 Minutes .. donc ..30 mintues.
Ton souci vient de ta Division ...
Tu divises par 3600 ...... heuuu... tu veux des secondes ou des minutes ...?? .. car une heure = 60 minutes ... pas 3600..

L'utilisation de ta fonction TimeDifference (ou HeureDifférence) est :
Diff est un entier
Signe_temps est une chaîne
MonRésultat est une chaîne

Diff = HeureDifférence("0730", SAI_Heur_arrivé))
MonRésultat = EntierVersHeure(Abs(Diff))
SI Diff < 0 ALORS Signe_temps = "-"
Info("Temps écoulé : " + Signe_temps + Gauche(MonRésultat, 2) + " heures " + ...
Milieu(MonRésultat, 3, 2) + " minutes " + ...
Milieu(MonRésultat, 5, 2) + " secondes " + ...
Milieu(MonRésultat, 7, 2) + " centièmes de seconde")


Et pour convertir le tout en minutes... il suffit de multiplier les Heures par 60 .. y ajouter les minutes ... ajouter les secondes divisées par 60 .....



Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Commenter la réponse de jordane45
Messages postés
5
Date d'inscription
dimanche 16 novembre 2014
Dernière intervention
18 novembre 2014
- 16 nov. 2014 à 19:03
0
Merci
mon frère Jordan, même quand je divise par 60 voici l'infos retournée avec le même exemple j'obtiens 3000 au lieu de 30. Merci d'avance.
Messages postés
23253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 16 nov. 2014 à 19:06
Tu obtiens 30 Minutes 00 Secondes ... soit , affiché via la fonction que tu utilises : 3000 .........
Tu Obtiens donc bien le bon résultat non ???
Messages postés
23253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 16 nov. 2014 à 19:07
PS : JordanE (avec un E ) ...
Ah.. et aussi ... je ne pense pas que nous soyons de la même famille....donc ni cousin.. ni frêre.. mais éventuellement confrères développeurs ^^
Commenter la réponse de dmi88
Messages postés
5
Date d'inscription
dimanche 16 novembre 2014
Dernière intervention
18 novembre 2014
- 17 nov. 2014 à 10:10
0
Merci
au temps pour moi JordanE, merci une fois de plus pour l'eclaircissement.Bonne journée
Messages postés
23253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 17 nov. 2014 à 10:27
Comme je te le disais, ta fonction te retourne une données sous la forme : HHMMSS
HH : Heures
MM : Minutes
SS : Seconcdes.

A l'aide du code que je t'ai donné, créé trois variables Heures , Minutes , Secondes .. puis pour calculer le temps en Minutes fais le calcul :
TmpsenMinutes = Heures *60 + Minutes + Secondes/60
Messages postés
23253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 17 nov. 2014 à 23:36
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
Commenter la réponse de dmi88

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.