Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

2 réponses
Avatar
JC
Bonjour

Est-ce que vous avez des soucis avec les fonctions associ=E9es aux
Dur=E9es et aux Heures ? Moi oui, et je voudrais savoir o=F9 est le
probl=E8me... 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 d=E9but et des heures de fin de t=E2ches,
+ un champ Dur=E9e. Et l=E0, j'ai deux soucis majeurs :

_________________________________________________
- souci 1: calcul de dur=E9e

Dans la doc PCSoft, il est =E9crit:

pour Heure:

"
HeureD=E9but est une heure=3D 1205
HeureFin est une heure =3D "2030" // 20 heures 30
"

---> On peut donc stocker dans les heures soit des valeurs num=E9riques
soit des chaines

et pour Dur=E9e

"
HeureD=E9but est une heure=3D "1330"
HeureFin est une heure=3D "1730"
Dur=E9eCongr=E8s est une Dur=E9e =3D HeureFin - HeureD=E9but
"
---> Idem, on peut stocker dans les heures soit des valeurs num=E9riques
soit des chaines

Alors quand je fais

//cas 1:
hD=E9but est une Heure
hD=E9but =3D 1000
hFin est une Heure
hFin =3D 1230
du=C9cart est une Dur=E9e =3D hFin - hD=E9but
Trace(hD=E9but) // renvoie 000010000
Trace(hFin) // renvoie 000012300
Trace(du=C9cart) // renvoie 0000002300 (2h30 ok)
Trace(Dur=E9eVersCha=EEne(du=C9cart,"HH h MM mn")) // renvoie 00 h 00
mn !!!!!

// cas 2:
hD=E9but =3D "1000"
hFin =3D "1230"
du=C9cart =3D hFin - hD=E9but
Trace(hD=E9but) // renvoie 100000000 !! pas la m=EAme valeur que ci-
dessus et pourtant c'est la m=EAme heure.
Trace(hFin) // renvoie 123000000 !! pas la m=EAme valeur que ci-
dessus et pourtant c'est la m=EAme heure.
Trace(du=C9cart) // renvoie 0023000000 !! pas la m=EAme valeur que ci-
dessus et pourtant c'est la m=EAme dur=E9e
Trace(Dur=E9eVersCha=EEne(du=C9cart,"HH h MM mn")) // renvoie 02 h 30 mn
(yes !)


// avec DateHeure =E7a a l'air de mieux fonctionner...
dhJourHeureD=E9but est un DateHeure =3D "201101011000"
dhJourHeureFin est un DateHeure =3D "201101011230"
du=C9cartDate est une Dur=E9e
du=C9cartDate =3D dhJourHeureFin - dhJourHeureD=E9but
Trace(du=C9cartDate) // renvoie 0023000000
Trace(Dur=E9eVersCha=EEne(du=C9cartDate, "HH h MM mn")) // renvoie 02 h 30
mn (yes !)


Pouvez-vous m'expliquez pourquoi je n'obtiens pas les m=EAmes/bons
r=E9sultats dans les deux premiers cas ?

_________________________________________________
- souci 2: affichage dans une table

Maintenant, je veux afficher mon heure de d=E9but, mon heure de fin et
ma dur=E9e dans une table. Donc logiquement :
- la colonne heure_d=E9but contient le champ heure_d=E9but 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 diff=E9rence ?
- la colonne dur=E9e contient le champ dur=E9e vu ci-dessus. La colonne
est du format Dur=E9e au format "HH:MM". Dans le cas 1, les dur=E9es
affichent " s" , et rien d'autre ! Dans le cas 2, les dur=E9es
affichent "02:30 h".

Pourquoi de tels r=E9sultats diff=E9rents ? J'y perds mon latin...

Merci pour vos lumi=E8res.

JC

2 réponses

Avatar
erikflament
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
Avatar
Romain PETIT
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