Donnez vie à vos documents numériques !
 

Addition des heures (hh:mm:ss) égales à 24h00

abracadabraPDF Forums PDF – Général Addition des heures (hh:mm:ss) égales à 24h00

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45883
    Crevette
    Membre

    Bonjour à toute la communauté,
    Revoilà le sujet des additions d’heures.Je me suis inspiré des nombreuses contributions pour écrire les scripts (voir ci-dessous) qui fonctionnent très bien. Malheureusement, en testant la possibilité d’une durée de 24:00:00 je me suis aperçu que l’addition ne fonctionnait pas. Je peux additionner 23:59:59 mais 24:00:00 impossible. :mur: Je tourne en rond depuis quelques jours. Avez-vous idée qui débloquerait cet obstacle?
    D’avance merci pour vos réponses.

    Voici le script en document

    function Time2Num(sFormat, sTime) {
    /*
    convert time string (sTime) with format of sFormat
    to the seconds since the start of the day
    */
    if(sTime == ”) return ”; // exit
    // get date time for Epoch date and sTime
    var oTime = util.scand(‘mm/dd/yyyy ‘ + sFormat, ’01/01/1970 ‘ + sTime);
    // convert UTC Offset to milliseonds for adjustment
    var fTZOffset = oTime.getTimezoneOffset() * 1000 * 60
    // time since the start of the day in millseconds
    var fTime = oTime.valueOf() – fTZOffset;
    // convert to seconds and return value
    return Math.floor(fTime / 1000);
    }
    Script de calcul

    event.value = ”;

    // Récupération les temps
    var temps1 = this.getField(‘Champs1’).value;
    var temps2 = this.getField(‘Champs2).value;
    // …

    // Conversion des temps de chaînes en nombres (secondes)
    var secondes1 = Time2Num(‘hh:mm:ss’, temps1);
    var secondes2 = Time2Num(‘hh:mm:ss’, temps2);
    // …

    // Somme
    var somme = secondes1+ secondes2; //…

    // Variables
    var fsec = somme ;
    var fMins = somme / 60;
    var fHrs = Math.floor(fMins / 60);

    // Minutes
    fMins = fMins – (fHrs * 60);
    fMins = Math.floor(fMins);

    // Secondes
    fsec = fsec – (fHrs * 3600) – (fMins * 60);
    fsec = Math.floor(fsec);

    // Mise en forme du résultat
    event.value = fHrs + ‘:’ + util.printf(‘%,302.0f’, fMins) + ‘:’ + util.printf(‘%,302.0f’, fsec)
    //

  • Vous devez être connecté pour répondre à ce sujet.