web-dev-qa-db-fra.com

La meilleure façon de créer un élément GUI temporel?

Je dois définir un élément GUI qui contient un intervalle de temps avec minutes, heures, jours, semaines et mois. Quelle est la meilleure pratique dans ce cas?

J'ai envisagé les possibilités suivantes: enter image description here

Y a-t-il d'autres bons moyens?

19
frugi

Mon idée initiale est d'utiliser un curseur où vous pouvez choisir des horodatages adaptés à l'utilisateur. Plus vous remontez dans le temps, plus vous avez de pas de temps approximatifs dans cette échelle logarithmique. Ce n'est peut-être pas approprié partout, mais c'est rapide et intuitif:

mockup

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

20
Benny Skogberg

J'aime particulièrement la façon dont Facebook gère les dates. Il vous suffit de choisir une date en cliquant sur le calendrier puis de spécifier l'heure. Lors de la saisie de l'heure, ils vous suggèrent quelques arrondis.

facebook's date entry

5
Gabin

Cela me semble que vous essayez de concevoir le modèle d'interaction souvent utilisé dans les logiciels de planification, d'agenda ou de calendrier.

Jetez un œil à la façon dont cela se fait généralement sur le système d'exploitation pour lequel vous concevez. Sous Windows par exemple, vous pouvez supposer que la plupart des utilisateurs professionnels travaillent avec Outlook et ont créé un rendez-vous ou un élément d'agenda au moins une fois.

Ci-dessous deux exemples de Google Agenda et Outlook. Les deux s'appuient sur un sélecteur de dates et une liste déroulante pour choisir le début et la date/heure de début. Vous pouvez étendre la zone de texte de l'heure aux minutes ou secondes de l'hôte si nécessaire. Les cases à cocher fournissent des raccourcis supplémentaires pour remplir l'intervalle de temps.

enter image description here

** Modifier basé sur le commentaire de Frugi **

Pour une notification après un délai donné, vous pouvez également envisager quelque chose dans la ligne de la solution d'Evernote. Il donne 2 raccourcis qui seront souvent utilisés: 'Demain' 'Dans une semaine mais donne également la possibilité de renseigner une heure et éventuellement une date. Vous pouvez cependant supprimer la date et la remplacer par un certain nombre de mois.

Bien que la solution soit plus appropriée pour une page Web/interface Web ou une application mobile, qu'une application de bureau à mon avis.

enter image description here

** Edit basé sur la réponse de Benni **

Juste une dernière idée qui me vient à l'esprit. Si l'idée d'un curseur convient à votre application mais que vous avez besoin de plus de contrôle sur la limite de temps exacte, vous pouvez penser à une combinaison.

Utilisez le curseur pour un ajustement rapide, mais si vous devez saisir une valeur précise, vous pouvez créer une fenêtre contextuelle qui s'ouvre en double-cliquant/survolez/cliquez/rmb sur le pouce du curseur. Dans cette fenêtre contextuelle, vous pouvez mettre des contrôles de précision comme des filateurs pour affiner votre heure/date.

5
GWv

Affichage de l'heure

J'ai eu un problème similaire avec un de mes projets. Voici ce que j'ai fait. Code source

Relative Time

Le positionnement est peut-être désactivé.

Sélection de l'heure

Pour sélectionner la durée, utilisez quelque chose comme ceci:

Google Calendar

3
0xcaff

Je suppose que cela dépend fortement du type de cas d'utilisation que vous souhaitez implémenter.

En fonction de cela, il peut y avoir plusieurs réponses valides, et aucune réponse unique ne conviendra à tous les cas d'utilisation de la même manière, donc je suppose qu'il n'y a pas de réponse canonique.

Au départ, je pensais aussi au slider, mais ensuite je me suis dit: De quelle durée parlons-nous?

  • Est-ce quelques minutes? Heures? Années? …?
  • Le fait d'avoir des blocs de 15 min/30 min/45 min /… est-il correct, ou l'utilisateur a-t-il également besoin de pouvoir spécifier des nombres brisés (pensez à 1,3274363 secondes)?
  • Est-ce passé jusqu'à maintenant, maintenant jusqu'à l'avenir, ou passé jusqu'à l'avenir, ou une combinaison des deux? En d'autres termes: un côté de l'intervalle est-il fixe ou non?
  • Est-ce que les temps réels comptent, ou s'agit-il à peu près minutes, et il n'y a pas de différence en sémantique que ce soit de 9 à 9h30 ou de 10 à 10h30?

Selon les réponses à ces questions, j'irais dans un sens ou dans l'autre.

Pour donner un exemple:

  • Si vous souhaitez organiser une réunion, les heures réelles sont importantes, mais nous parlons de minutes et d'heures, ni de secondes ni de dates. Des listes déroulantes à la page Facebook seraient donc suffisantes.
  • Si vous voulez configurer un chronomètre, c'est toujours à partir de maintenant, donc une seule liste déroulante avec des minutes (1 min, 2 min, 3 min,…) est probablement très bien.
  • Si vous voulez faire un questionnaire sur la durée pendant laquelle les gens peuvent retenir leur souffle, les temps réels sont complètement hors de propos, il s'agit uniquement de la plage. Un curseur peut alors être une bonne option.

Juste pour vous donner une idée.

Fondamentalement, ma réponse se résume à tilisez le bon outil pour le bon travail.

1
Golo Roden