abracadabraPDF › Forums › PDF – Général › Code pour calculer heures, minutes, secondes › Répondre à : Code pour calculer heures, minutes, secondes

bonjour,
Je t’ai fait un exemple vite fait car après je pars en vacances…
Script de calcul lorsqu’il n’y a pas beaucoup de champs (cf. premier exemple) :
if (this.getField("distance").value && this.getField("temps").value && this.getField("allureAux").value) {
var Temps=this.getField("temps").value.split(":");
var enSecondes=Number(Temps[0])*3600+Number(Temps[1])*60+Number(Temps[2]);
var regleDe3=enSecondes*this.getField("allureAux").value/this.getField("distance").value;
var lesMinutes=Math.floor(regleDe3/60);
var enSecondes=(regleDe3-lesMinutes*60).toFixed(2).toString().split(".");
var lesSecondes=enSecondes[0];
var lesCentiemes=enSecondes[1];
event.value=lesMinutes+"\'"+util.printf("%,302.0f", lesSecondes)+"\"";
if (lesCentiemes!="00") event.value+=lesCentiemes;
} else event.value="";
Vu que tu as souvent beaucoup de champs, il est préférable de mettre une fonction en script de document et de l’appeler uniquement lorsqu’un champ modifié est désactivé, ce qui évite de lancer le calcul pour tous les champs après chaque évènement (cf. second exemple).
La fonction :
function allure(laDistance,leTemps,lAllureAux) {
if (laDistance && leTemps && lAllureAux) {
var Temps=leTemps.split(":");
var enSecondes=Number(Temps[0])*3600+Number(Temps[1])*60+Number(Temps[2]);
var regleDe3=enSecondes*lAllureAux/laDistance;
var lesMinutes=Math.floor(regleDe3/60);
var enSecondes=(regleDe3-lesMinutes*60).toFixed(2).toString().split(".");
var lesSecondes=enSecondes[0];
var lesCentiemes=enSecondes[1];
this.getField("allure."+ind).value=lesMinutes+"\'"+util.printf("%,302.0f", lesSecondes)+"\"";
if (lesCentiemes!="00") this.getField("allure."+ind).value+=lesCentiemes;
} else this.getField("allure."+ind).value="";
}
<code>et tu l'appelles avec :</code>
var indice=event.target.name.split(".");
ind=indice[1];
allure(this.getField("distance."+ind).value,this.getField("temps."+ind).value,this.getField("allureAux."+ind).value);
@+
😎
-
Cette réponse a été modifiée le il y a 2 années par
bebarth.