Fonction de calcul de différence d'une heure à une autre

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 681 fois - Téléchargée 31 fois

Contenu du snippet

Cette fonction sert à calculer un ecart de temps entre deux moments.
(Début d'une procédure et fin de celle ci par excemple )
la meilleure explication de cette fonction et le code suivant
time1=time() time1=heure système
time2=time() time2=heure système
toto=dift(time2,time1) toto = le temps que vous aurez mis à valider
les deux lignes

?toto donnera "00000:00:02"

toto est bien une chaine de caractère.
Les deux sous fonctions servent à convertir du temps en numérique (temvern)
et convertir le numérique vers le temps (nvertem)

Source / Exemple :


procedure dift
parameters t1,t2
local heu,min1,s,h2,min2,sec2,r,rh1,rs1,rh,rm,rs,retour
rh=0
rm=0
rs=0
heu=substr(t1,1,(at(":",t1)-1))
min1=substr(t1,4,2)
s=substr(t1,7,2)
heu=val(heu)
min1=val(min1)
s=val(s)
heu=heu*60
min1=min1*60
s=s+min1+(heu*60)
h2=substr(t2,1,(at(":",t2)-1))
min2=substr(t2,4,2)
sec2=substr(t2,7,2)
h2=val(h2)
min2=val(min2)
sec2=val(sec2)
h2=h2*60
min2=min2*60
sec2=sec2+min2+(h2*60)
if sec2>s
r=sec2-s
else
r=s-sec2
endif
 

retour=nvertem(r)
return retour

function temvern
parameters temp1
local s,m,h
s=substr(temp1,len(temp1)-1,2)
s=val(s)
m=substr(temp1,len(temp1)-4,2)
m=val(m)*60
h=substr(temp1,1,len(temp1)-6)
h=val(h)*3600
retour=h+m+s
return retour

function nvertem
parameters temp1
local s,m,h
h=int(temp1/3600)
resth=mod(temp1,3600)

m=int((resth)/60)
restm=mod(m,60)

s=int(mod(resth,60))

return padl(h,5,"0")+":"+padl(m,2,"0")+":"+padl(s,2,"0")

A voir également

Ajouter un commentaire

Commentaires

Messages postés
16
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
11 janvier 2018

Bonjour
Votre suggestion renvoie une variavble var 3
qui vaut 65 pour une minute et5 seconde.


La mienne renverra XX:MM:SS
ou xx sont les heures
mm les minutes
ss les secontes.


cordialement

Eric
Messages postés
381
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
24 octobre 2013
2
Un autre solution possible?

Var1 = time() && 05:19:05 AM
Var2 = time() && 05:19:12 AM

Var3 = CTOT(var2)-CTOT(var1)

? Var3 && Donne 7 secondes.

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.