DIFFERENCE ENTRE DEUX HEURES

  • DIFFERENCE ENTRE DEUX HEURES

    Posté par peggy sur 30 novembre 2023 à 19h09

    Bonjour chers tous

    Je souhaite calculer la durée de présence de mes employés (Heure Départ moins Heure Arrivé) diminuée d’un (01) heure de pause

    la fonction que j’utilise est la suivante

    DureePresenceSec = IF(‘table'[Heure arrivée]>’table'[Heure depart],BLANK(),(DATEDIFF(‘table'[Heure arrivée],’table'[Heure depart],SECOND)-TIME(00,00,3600))

    MAIS LE RESULTAT EST FAUX parce que ne prend pas en compte les 01 heure de pause

    PostID=8bfbU84mDRFhoRi

    StevannS a répondu Il y a 10 mois 2 Membres · 1 Réponse
  • 1 Réponse
  • StevannS

    Membre
    18 décembre 2023 à 23h06

    Bonjour Peggy, en fait, DATEDIFF renvoie un chiffre et pas un temps : tu soustrais donc une valeur TIME à une valeur entière. Le site “learn.microsoft.com” indique : Return Value = The count of interval boundaries between 2 dates.

    Donc, pour que cela fonctionne, il faut que tu retires 3600 et non TIME(0, 0, 3600), et que DureePresenceSec soit en format “Nombre entier”. Cependant, tu obtiendras des secondes qu’il faudra convertir en heures et min, car c’est ce qui t’intéresse… C’est faisable mais pas vraiment efficace…

    Donc, pour moi, DATEDIFF n’est pas la meilleure solution à ton besoin. La meilleure méthode consisterait à calculer directement la différence entre les Dates Départ et Arrivée en retirant cette fois-ci Time(1, 0, 0), te donnant ainsi une différence directement en hh:mm, comme suit :

    <code class="language-plaintext">Colonne calculée =
    VAR _DateArrivee = TableHeures[Date arrivée] + TableHeures[Heure arrivée]
    VAR _DateDepart = TableHeures[Date départ] + TableHeures[Heure départ]
    
    RETURN
    _DateDepart - _DateArrivee - TIME(1,0,0)

    Voilà.

    • Cette réponse a été modifiée Il y a 10 mois par  StevannS.
    • Cette réponse a été modifiée Il y a 10 mois par  StevannS.
    • Cette réponse a été modifiée Il y a 10 mois par  StevannS.

Connectez-vous pour répondre.