Donnez vie à vos documents numériques !
 

Addition d’heures

abracadabraPDF Forums PDF – Général Addition d’heures

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45692
    Sambot_1er
    Membre

    Bonjour à toutes et à tous,
    Tout d’abord, j’ai cherché, téléchargé, décortiqué en fonction de mes maigres connaissances… mais sans résultat.
    Alors voilà, je vous demande un peu d’aide. Je dois “juste” additionner des heures saisies, je croyais cela facile, c’est peut-être le cas mais moi ça ne fonctionne pas.
    J’ai un certain nombre de champs, chacun d’entre eux aura une valeur en heures et minutes (saisie) :  HH:MM.
    Le but est d’additionner toutes ces heures et les rendre visibles dans un champs “Total d’heures”.
    (Désolé si j’ai mis en double post, j’ai peut-être m… à un moment donné).

Affichage de 14 réponses de 1 à 14 (sur un total de 14)
  • Auteur
    Réponses
  • #62729
    Merlin
    Maître des clés

    Bonjour.

    Tu en as rêvé, Practical PDF l’a fait et a rendu beaucoup plus simple ce type de calcul avec son Date Library for Adobe Acrobat : http://practicalpdf.com/the-practicalpdf-date-library-for-adobe-acrobat/
    :soleil:

    #62730
    Sambot_1er
    Membre

    Bonjour Merlin,
    Merci pour ce lien, le temps pour moi de le faire traduire et je m’y colle…
    Très bonne journée à tous.

    #62731
    Merlin
    Maître des clés
    #62732
    Sambot_1er
    Membre

    Hello tous et toutes,
    Merlin, merci pour le lien !
    J’y suis allé, j’ai imprimé, j’ai essayé de comprendre mais le niveau est bien trop élevé pour moi.
    Tant pis, je ne vous embête pas plus je vais essayer de trouver une autre façon de faire…
    Merci en tout cas pour ton aide…
    :Smiley03:

    #62733
    Sambot_1er
    Membre

    Hello,
    Juste une petite question, est-il possible via un JS de transformer des chiffres en heures et minutes ?
    Ex : 01,90 en 2:30

    Merci beaucoup.

    #62734
    Merlin
    Maître des clés

    Certainement, mais “chiffre” n’est pas une unité, et il faut nécessairement connaitre l’unité de départ…  :geek:

    #62735
    Merlin
    Maître des clés

    j’ai essayé de comprendre mais le niveau est bien trop élevé pour moi.
    Tant pis, je ne vous embête pas plus je vais essayer de trouver une autre façon de faire…

    Je ne suis pas très à l’aise avec les dates mais je verrai ce que je peux faire quand j’aurai un peu de temps, ça me donnera l’occasion de tester ce nouvel utilitaire qui m’a l’air bien “practique”.

    #62736
    Sambot_1er
    Membre

    Salut Merlin,
    Pas de souci, c’est très sympa merci beaucoup.

    #62737
    Merlin
    Maître des clés

    Je n’y arrive pas.
    L’utilitaire de Practical à l’air très bien pour manipuler les dates et les jours mais pas pour additionner des heures…
    J’ai aussi essayé de bricoler un truc maison mais ça ne fonctionne pas correctement.

    J’avais fait il y a quelques temps une fiche horaire pour une société et j’avais habilement rusé : l’utilisateur devait saisir le temps en minutes, sans les heures (ex : 80 mn).
    Du coup la suite est beaucoup plus simple.
    :joker:

    #62738
    Sambot_1er
    Membre

    Bonjour Merlin,
    Ne t’inquiètes pas et vraiment merci pour tout.
    L’option de saisie des temps en minutes conviendrait parfaitement à une partie des équipes (mais une partie ferait la grimace car pas très à l’aise avec ce type de comptage, dommage).
    Tant pis !
    Merci encore et très bonne journée.

    #62739
    Merlin
    Maître des clés

    Je ne saurais jamais pourquoi, ce matin en lisant ton message un éclair venu du fond de l’espace-temps a illuminé mon esprit et ça m’a paru simple.
    Du coup ça m’a pris 2 minutes et ça fonctionne parfaitement !  :geek:

    Script de calcul :

    Code:
    console.clear();
    nNouvelHeure = 0;
    nNouvelMinute = 0;
    for (var i=0; i nValeurDuChamp = this.getField(“Temps_passe.” + ).valueAsString;
    aValeurAdecouper = nValeurDuChamp.split(“:”);
    nHeure = aValeurAdecouper[0];
    if (nHeure == null || nHeure == “”) {nHeure = 0;}
    console.println(“nHeure : ” + nHeure);
    nMinute = aValeurAdecouper[1];
    if (nMinute == null || nMinute == “”) {nMinute = 0;}
    console.println(“nMinute : ” + nMinute);
    nNouvelHeure = Number(nNouvelHeure) + Number(nHeure);
    nNouvelMinute = Number(nNouvelMinute) + Number(nMinute);
    }
    console.println(nNouvelHeure + “:” + nNouvelMinute);
    // total des heures + minutes
    nNouvelHeureMin = Number(nNouvelHeure) * 60;
    nTotalMin = Number(nNouvelHeureMin) + Number(nNouvelMinute);
    // conversion en HH:MM
    nHours = (Math.floor(Math.abs(nTotalMin) / 60)); 
    nMinuts = (Math.abs(nTotalMin) % 60); 
    console.println(nHours + ‘H ‘ + nMinuts + ‘M’); 
    event.target.value = nHours + “:” + nMinuts;

    On peut supprimer les lignes qui commencent par “console”

    #62740
    Sambot_1er
    Membre

    Hello,
    Alors vive les éclairs venus de l’espace-temps !!!  :bravo:
    C’est génial et çà va intéresser énormément de monde sans aucun doute !
    Big merci Merlin, vraiment.
    :bravo: :bravo: :bravo:

    #62741
    Merlin
    Maître des clés

    Par-contre, maintenant que j’y pense, il pourrait être judicieux de mettre “zéro” comme valeur par défaut dans les champs de saisie à totaliser car je ne suis pas certain que le script soit suffisamment protégé contre les erreurs NaN (Not a Number).
    :idee:

    #62742
    Sambot_1er
    Membre

    Merlin,

    Ok, fait… Merci !  :Smiley01:

Affichage de 14 réponses de 1 à 14 (sur un total de 14)
  • Vous devez être connecté pour répondre à ce sujet.