Page 1 sur 1

comparer facilement différence entre deux heures

Publié : lun. 07/août/2017 14:18
par david
Bonjour,

je souhaite traiter une tache dans XX minutes après le lancement de mon programme
c'est assez compliqué pour moi d'utiliser timer ou thread... et de l'intégrer à mon code étant très débutant

alors comme je sais quand mon pg a été lancé, et que je sais l'heure qu'il est maintenant, il semblait évident de lui dire:
"si heure de maintenant - heure de debut = 60 min, vas-y mon gars..."

je souhaite comparer facilement l'ecart de temps entre deux heures
je ne comprend pas pourquoi quand je calcul la différence j'ai toujours zéro
même en décomposant avec

Code : Tout sélectionner

 debHour.l= Hour(Val(Time$)):  debMin.l = Minute(Val(Time$)):  debSec.l = Second(Val(Time$))
 finHour.l= Hour(Val(TimeEnCours$)):  finMin.l = Minute (Val(TimeEnCours$)):  finSec.l = Second(Val(TimeEnCours$))
 ecartHour.l =finHour - debHour:  ecartMin.l =finMin - debMin:  ecartSec.l =finSec - debSec 
rien n'y fait
je pensais pas être fort, là ça fait 2 jours que j'y suis j'ai vraiment l'impression d'être trop nul!
pitié, dites-moi ce qui m'échappe parce que là j'ai encore raté une évidence, c'est pas possible autrement!!!!

Code : Tout sélectionner

Global Date$ = FormatDate("%yyyy/%mm/%dd", Date())
Global Time$ = FormatDate("%hh:%ii:%ss", Date())
Global TimeEnCours$

   
  boucle:
  TimeEnCours$ = FormatDate("%hh:%ii:%ss", Date())
  
  
  result$ = Str(Val(TimeEnCours$)-Val(Time$))
  
  Debug Time$ + " / " + TimeEnCours$ + " / " + result$
  Delay(1000)
  
  
  Goto boucle
ps: je sais qu'on n'aime pas trop les goto, mais c'est pour simplifier le code envoyé

Re: comparer facilement différence entre deux heures

Publié : lun. 07/août/2017 14:54
par Mindphazer
Il me semble que tu peux utiliser ElapsedMilliseconds()
Tu récupères sa valeur au début de ton prog
t = ElapsedMilliseconds()

et dans ta boucle, tu testes ElapsedMilliseconds() - t

Si c'est supérieur à 3600000 (3600000 millisecondes = 60 min = 1h) alors vas-y mon gars

Re: comparer facilement différence entre deux heures [RESOLU

Publié : lun. 07/août/2017 15:03
par david
oh oui j'ai testé c'est pas mal ça, merci!
facile a utiliser et ça marche nickel. mon problème est donc solutionné

par contre je suis curieux de nature, j'aurais bien voulu comprendre pourquoi ça ne marchais pas...

Re: comparer facilement différence entre deux heures

Publié : lun. 07/août/2017 15:05
par Marc56
Les fonctions de Date travaillent en secondes, donc facile:

Code : Tout sélectionner

Start = Date()

For i = 1 To 10
     Debug Date() - Start
     Delay(1000)
Next
Ou plus complet

Code : Tout sélectionner

Start = Date()

For i = 1 To 10
     Now = Date()
     Dif = Now - Start

     Debug " " + 
           FormatDate("%hh:%ii:%ss", Start)  + " / " + 
           FormatDate("%hh:%ii:%ss", now)    + " / " + 
           FormatDate("%hh:%ii:%ss", Dif)  
     
     Delay(1000)
Next
Voir aussi ParseDate et Addate (qui fonctionne aussi en négatif)

Re: comparer facilement différence entre deux heures

Publié : lun. 07/août/2017 16:29
par david
merci, ça a le mérite d'etre clair

Re: comparer facilement différence entre deux heures

Publié : lun. 07/août/2017 17:13
par Marc56
Il ne faut pas chercher à isoler les valeurs (jour/mois/année heure/minutes/sec) c'est trop long.

C'est plus simple de tout passer en secondes

Code : Tout sélectionner

Saisie utilisateur:

Chaine -> ParseDate() => Date en secondes 
   ou 
DateGadget() => Date en secondes 

-> Calculs ->

Résultat:

Secondes -> FormatDate() => Chaine
   ou 
Résultat en secondes => DateGadget() 

Re: comparer facilement différence entre deux heures

Publié : lun. 07/août/2017 21:22
par david
oui, merci du conseil, c'est plus logique effectivement


c'est parce que j'ai tjs peur de mal repasser de l'un à l'autre, mais sinon tu as raison
après sinon on se perd tjs un peu les pinceaux entre les formats récupérées de chaque variables