PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Problème avec Heure
Problème avec Heure
Iniciado por AnneT, ago., 17 2005 11:00 AM - 4 respostas
Publicado em agosto, 17 2005 - 11:00 AM
Bonjour,

J'ai une heure qui est sous forme de centième d'heure (ex: 0.99 qui correspond à 00:59:24 sous forme hh:mm:ss)
J'ai créé une fonction qui me retourne ces centième d'heure en type Heure:
PROCEDURE dure(dr=0.99)
tps est une Heure="00000000"
tps..Heure=PartieEntière(dr)
dr=PartieDécimale(dr)*60
tps..Minute=PartieEntière(dr)
dr=PartieDécimale(dr)
dr=dr*60
tps..Seconde=dr
Info(tps..Seconde)
RENVOYER tps


le pb est que cela me renvoie 00:59:23
J'ai essayé avec tps de type durée mais là j'ai 00:00:23

Quelqu'un aurait-il une solution?

Merci
Publicado em agosto, 17 2005 - 2:28 PM
Il suffit de travailler sur les secondes

PROCEDURE dure(dr=0.99)
tps est une Heure="00000000"
dr=dr*3600
tps..Heure=PartieEntière(dr/3600)
dr=dr-tps..heure*3600
tps..Minute=PartieEntière(dr/60)
dr=dr-tps..minute*60
tps..Seconde=dr
Info(tps..Seconde)
RENVOYER tps
Publicado em agosto, 17 2005 - 2:41 PM
bonjour,

c'est un peu laborieux, mais cela retourne 40
si cela peux vous aider.

bon dev.

===============================================

PROCEDURE dure()

dr est un réel = 0.99

DateHeureParDéfaut(DateDuJour(),"00000000")

tps1 est une Heure
xx est un entier
x1, x2 sont des entiers
x3 est un réel

x1 = PartieEntière(dr)
x2 = dr*60
x3 = ((dr*60) - x2) * 100


tps1..Heure = x1
tps1..Minute = x2
tps1..Seconde= x3
xx = x1*10000 + x2*100 + x3
lxx est une chaîne = "000000" + xx
lxx = Droite(lxx,6)

tps1..Heure = Gauche(lxx,2)
tps1..Minute = Milieu(lxx,3,2)
tps1..Seconde= Droite(lxx,2)


RENVOYER tps1
Publicado em agosto, 17 2005 - 4:24 PM
Autre solution ...

PROCEDURE dure(dr=0.99)
tps est une Heure="00000000"
tps=EntierVersHeure(dr*360000)
Info(tps..Seconde)
RENVOYER tps
Publicado em agosto, 17 2005 - 6:00 PM
Merci pour vos réponses!