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

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

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.