Type Heure et Durée, j'y perds mon latin

Le
JC
Bonjour

Est-ce que vous avez des soucis avec les fonctions associes aux
Dures et aux Heures ? Moi oui, et je voudrais savoir o est le
problme Pour info, je suis sur WinDev 12.

Je veux faire une petite appli de gestion de mon temps. Donc j'ai un
fichier qui stocke des heures de dbut et des heures de fin de tches,
+ un champ Dure. Et l, j'ai deux soucis majeurs :

_________________________________________________
- souci 1: calcul de dure

Dans la doc PCSoft, il est crit:

pour Heure:

"
HeureDbut est une heure= 1205
HeureFin est une heure = "2030" // 20 heures 30
"

> On peut donc stocker dans les heures soit des valeurs numriques
soit des chaines

et pour Dure

"
HeureDbut est une heure= "1330"
HeureFin est une heure= "1730"
DureCongrs est une Dure = HeureFin - HeureDbut
"
> Idem, on peut stocker dans les heures soit des valeurs numriques
soit des chaines

Alors quand je fais

//cas 1:
hDbut est une Heure
hDbut = 1000
hFin est une Heure
hFin = 1230
ducart est une Dure = hFin - hDbut
Trace(hDbut) // renvoie 000010000
Trace(hFin) // renvoie 000012300
Trace(ducart) // renvoie 0000002300 (2h30 ok)
Trace(DureVersChane(ducart,"HH h MM mn")) // renvoie 00 h 00
mn !!!!!

// cas 2:
hDbut = "1000"
hFin = "1230"
ducart = hFin - hDbut
Trace(hDbut) // renvoie 100000000 !! pas la mme valeur que ci-
dessus et pourtant c'est la mme heure.
Trace(hFin) // renvoie 123000000 !! pas la mme valeur que ci-
dessus et pourtant c'est la mme heure.
Trace(ducart) // renvoie 0023000000 !! pas la mme valeur que ci-
dessus et pourtant c'est la mme dure
Trace(DureVersChane(ducart,"HH h MM mn")) // renvoie 02 h 30 mn
(yes !)


// avec DateHeure a a l'air de mieux fonctionner
dhJourHeureDbut est un DateHeure = "201101011000"
dhJourHeureFin est un DateHeure = "201101011230"
ducartDate est une Dure
ducartDate = dhJourHeureFin - dhJourHeureDbut
Trace(ducartDate) // renvoie 0023000000
Trace(DureVersChane(ducartDate, "HH h MM mn")) // renvoie 02 h 30
mn (yes !)


Pouvez-vous m'expliquez pourquoi je n'obtiens pas les mmes/bons
rsultats dans les deux premiers cas ?

_________________________________________________
- souci 2: affichage dans une table

Maintenant, je veux afficher mon heure de dbut, mon heure de fin et
ma dure dans une table. Donc logiquement :
- la colonne heure_dbut contient le champ heure_dbut de mon
fichier : ce champ est du format Heure et la colonne est du format
Heure aussi. Dans le cas 1, les heures affichent 00:00 ! Dans le cas
2, elles affichent bien 10:00 et 12:30. Pourquoi cette diffrence ?
- la colonne dure contient le champ dure vu ci-dessus. La colonne
est du format Dure au format "HH:MM". Dans le cas 1, les dures
affichent " s" , et rien d'autre ! Dans le cas 2, les dures
affichent "02:30 h".

Pourquoi de tels rsultats diffrents ? J'y perds mon latin

Merci pour vos lumires.

JC
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
erikflament
Le #23040001
Le 20/01/2011 17:54, JC a écrit :
Bonjour


bonjour

Est-ce que vous avez des soucis avec les fonctions associées aux
Durées et aux Heures ? Moi oui, et je voudrais savoir où est le
problème... Pour info, je suis sur WinDev 12.



je suis en 7.5 et ne travaille qu'avec des dateheures
exemple heure debut = "19:00" heure fin = "01:00" pas cool en heures
alors que dateheures convient pil poil

sur une gestion de temps en entreprise
une semaine ne peut dépasser 44 heures, il doit y avoir un repos de 11
heures entre 2 jours, etc..
dateheure est un format qui me convient mieux

eric
Romain PETIT
Le #23043741
JC avait soumis l'idée :
Bonjour



Bonjour,

---> On peut donc stocker dans les heures soit des valeurs numériques
soit des chaines



Oui, mais attention, si c'est un entier 1000 ne correspond pas à 10h00
mais à 1000 centièmes de secondes, soit 10 secondes.
(c'est pour cela que tu traces "000010000" et non "100000000" dans le
1er cas et que ton écart calculé est donc de 2 secondes 30 centièmes,
secondes qui n'apparaissent pas dans ton formatage d'affichage)

Extrait de l'aide
entier : l'heure correspondra alors au nombre de centièmes de secondes
écoulés depuis minuit "00 :00 :00 :00". A minuit correspond l'entier 0.
Ne peut dépasser 8.639.999 (24 heures - 1 centième de seconde).

A+

--
Romain PETIT
contact : rompetit chez free fr
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Publicité
Poster une réponse
Anonyme