web-dev-qa-db-fra.com

Comment afficher la durée (HH: MM) pour ne pas la confondre avec l'heure de l'horloge

J'ai un tableau dans mon application qui montre les dates le long de son axe x et différents statuts le long de son axe y. Le tableau enregistre le temps passé par un employé dans un statut de travail donné (en service, hors service, etc.) pour la journée donnée en heures: minutes. J'ai inclus un croquis ci-dessous:

enter image description here

Mon inquiétude est que certains utilisateurs peuvent être confus et penser que cette heure représente quelque chose de différent, comme l'heure à laquelle cet état s'est produit (c'est-à-dire est entré en service à 6h00, a cessé ses fonctions à 18h00). Existe-t-il une meilleure façon de représenter cette fois pour être plus clair sur ce qu'elle représente, ou est-ce juste quelque chose que les utilisateurs devront apprendre par eux-mêmes en utilisant mon logiciel au fil du temps?

90
RhinoFeeder

Vous avez raison de poser cette question. Cela dépend vraiment de qui sont vos utilisateurs.

Dans les environnements à forte intensité de main-d'œuvre, les utilisateurs connaissent souvent très bien le HH:MM notation pour la durée, il est donc acceptable d'utiliser ce format. Mais, je suis d'accord que même pour ces environnements faciles à confondre avec le temps.

Y a-t-il une meilleure façon?

Commençons par la solution existante. Les avantages de HH:MM sont:

  • Il est universellement reconnu comme format d'heure
  • Il est scannable , c'est-à-dire lorsque vous avez beaucoup de données dans une grille, le HH:MM s'aligne bien, il est donc facile de numériser.

Dans cet esprit, voici deux approches. Vous pouvez étiqueter le tableau existant pour rappeler aux utilisateurs qu'il affiche la durée plutôt que le temps. Ou vous pouvez adopter une notation différente pour indiquer que c'est la durée:

enter image description here

La notation de gauche est populaire de nos jours et préserve une partie (mais pas la totalité) de la numérisation tout en indiquant plus clairement la durée. L'approche à droite garde la propreté du HH:MM notation, et définit le contexte utilisateur avec élégance en utilisant le coin supérieur gauche (qui est de toute façon le point d'entrée visuel de la table).

150
tohster

Un signe plus est parfois préfixé au format d'heure pour indiquer le décalage. Cela peut également impliquer une durée. Par exemple:

 +4: 00 +10: 00 +4: 00 
 +6: 00 +0: 00 +6: 00 
25
outis

Une autre possibilité serait d'ajouter une marque "prime" à la fin, comme cela est parfois (souvent en temps de course) utilisé. Les minutes et les secondes ressembleraient à 4′33″, donc une seule prime est de quelques minutes, alors utilisez 1:30′ pendant une heure et demie.

21
Random832

Vous pouvez également afficher les minutes avec une police plus petite.
Sur les chronomètres, cela se fait pendant les secondes ou millisecondes.

enter image description here

mockup

télécharger la source bmml - Wireframes créés avec Balsamiq Mockups

18

La norme internationale ISO 8601 suggère P04:00 ou P4H. Sa partie sur les périodes, les durées ou les intervalles de temps et les répétitions, cependant, n'est presque jamais suivie - et vous n'utilisez pas son format de date en premier lieu. JFTR

Veuillez noter que 4h00 n'est pas sans ambiguïté, car certaines personnes ont tendance à écrire les heures d'horloge de cette façon. 4h00m ou 4h00min serait mieux.

Il y a aussi des icônes: un chronomètre ⏱ (avec de gros boutons) désigne souvent des durées (moins souvent un sablier ⏳) où une horloge face ???? (avec de grandes mains) montre les temps.

16
Crissov

Vous pouvez utiliser des décimales. Ainsi, par exemple:

90 minutes seraient 1.5 hours au lieu de 1:30

3 heures et 45 minutes seraient 3.75 au lieu de 3:45

Ce format est hautement numérisable et facilite la somme des valeurs dans votre tête.

14
Eric Remer

peut-être est hors de portée, mais l'analyse d'une table pour détecter les clients n'est pas très conviviale. Si les ressources sont disponibles, j'irais avec un graphique empilé horizontal:

enter image description here

Il offre une meilleure perspective du pourcentage de temps sur chaque état et est plus facile à analyser pour les jours hors des modèles.

8
Onoper

Durée ISO 8601

Comme mentionné dans la réponse de Crissov, la norme ISO 8601 définit une représentation textuelle d'une durée dans ce format: PnYnMnDTnHnMnS, appelée Durées .

Dans ce format, le P marque le début. Le T sépare la partie jours de la partie heure (jour fractionné) et est omis pour les jours entiers.

Exemples:

  • P1D = Une journée entière.
  • PT5M = 5 minutes.
  • PT4H30M signifie "quatre heures et demie".
  • P3Y6M4DT12H30M5S représente une durée de "trois ans, six mois, quatre jours, douze heures, trente minutes et cinq secondes".

Encore plus bref: 4H 30M

Vous pouvez tronquer le PT pour présentation à l'utilisateur. Donc, quatre heures et demie seraient: 4H30M.

Ajoutez peut-être un espace de lisibilité: 4H 30M.

example chart using ISO 8601 style presentation of time spans

Avantages

L'avantage est que ce format est sans ambiguïté et ne sera pas confondu avec une autre signification. Un autre avantage est le fait qu'il s'agit d'une norme. Et les valeurs sont quelque peu intuitives et faciles à lire et à comprendre.

Les inconvénients

Un inconvénient est que les utilisateurs peuvent ne pas être familiers. Un moment d'explication ou de formation peut donc être nécessaire.

Programmation

Certaines bibliothèques de programmation peuvent analyser et générer de telles chaînes. Pour Java, la bibliothèque Joda-Time le fait facilement avec sa classe Period . De même, le nouveau package Java.time intégré à Java 8 propose également une classe Period ).

Exemple utilisant Joda-Time 2.7.

DateTime now = DateTime.now();
Period period = new Period( now , now.plusHours( 7 ) );
System.out.println( "period: " + period.toString() );

Production:

period: PT7H
6
Basil Bourque

JIRA utilise la notation de style '3h 15m' qui fonctionne pour moi.

Oh d'autre part, j'ai utilisé un système de feuille de temps dans lequel le temps était entré en blocs de 15 minutes. J'ai trouvé que la saisie de temps sous forme de valeurs décimales comme 3,25 était une manière non intuitive d'exprimer une durée de 3h 15m.

Sur l'exemple donné, deux choses ne sont pas claires:

Quelle est la granularité? Minutes ?, 5 minutes ou 30 minutes? Si je montrais quelque chose comme des jours de 24 heures divisés en plusieurs états, je penserais le long des lignes de pourcentages ou de graphiques à barres segmentées plutôt que d'heures/minutes qui pourraient être trop précises pour une vue. Souvenez-vous également que deux fois par an, vous obtenez 23 ou 25 heures.

1
GrantB

Une autre solution pourrait être d'afficher également les secondes. Puisque les secondes changeront rapidement il sera clair que les temps changent continuellement. Je ne recommande pas cette solution mais du point de vue de la clarté, cela fonctionne.

0
sixtyfootersdude

Il me semble que la confusion se produit car il y a 2 endroits de bas ordre avec les deux méthodes. Vous pouvez prendre toutes les données à 3 décimales fixes (ou 1 décimale) d'une heure, à l'aide d'un point décimal, et arrondies avant l'affichage. N'oubliez pas de conserver les données exactes en effectuant les calculs en minutes entières en interne, afin que des erreurs mineures en virgule flottante ne puissent pas se produire lors du total. Une autre idée est de tout rapporter en quelques minutes.

Si vous testez des alternatives sur certains utilisateurs, vous pourrez peut-être trouver la meilleure solution, peut-être quelque chose qui n'a pas encore été proposé. Certains pourraient penser que c'est votre travail de résoudre l'ambiguïté.

0
Markeee