Как отображать длительность (ЧЧ: ММ), поэтому ее не путать с часовым временем

У меня есть таблица в моем приложении, которая показывает даты вдоль оси x и разные статусы вдоль оси y. В таблице указано, сколько времени сотрудник потратил на определенный рабочий статус (дежурный, нерабочий и т. Д.) За данный день в часах: минуты. Я включил грубый эскиз ниже:

введите описание изображения здесь>> </p>

<p> Мое беспокойство состоит в том, что некоторые пользователи могут запутаться и подумать, что на этот раз это что-то другое, например, время, в которое произошло это государство (т. е. дежурство в 6:00, в 18:00). Есть ли лучший способ представить это время, чтобы быть более понятным из того, что он представляет, или это просто то, что пользователи должны будут самостоятельно изучать с помощью моего программного обеспечения с течением времени? </p></body></html>

85 голосов | спросил RhinoFeeder 25 MarpmWed, 25 Mar 2015 20:21:00 +03002015-03-25T20:21:00+03:0008 2015, 20:21:00

11 ответов


149

Вы правы, чтобы задать этот вопрос. Это действительно зависит от , кто ваши пользователи .

В трудоемких средах пользователи часто знакомы с нотой HH:MM для продолжительности, поэтому использовать этот формат в порядке. Но я согласен с тем, что даже для тех сред легко понять, как это смущает во времени.

Есть ли лучший способ?

Начнем с существующего решения. Преимущества HH:MM:

  • Это общепризнанный формат времени
  • Это scannable , т. е. когда у вас много данных в сетке, HH:MM хорошо выравнивается, поэтому его легко сканировать.

Имея это в виду, вот два подхода. Вы можете пометить существующую таблицу, чтобы напомнить пользователям, что она показывает продолжительность, а не время. Или вы можете принять другую нотацию, чтобы указать, что это длительность:

введите описание изображения здесь

Обозначения слева популярны в наши дни и сохраняют некоторую (но не все) проверяемость при более четкой обозначении продолжительности. Подход справа сохраняет чистоту нотации HH:MM и элегантно настраивает контекст пользователя, используя верхний левый угол (который в любом случае является визуальной точкой входа в таблицу).

ответил tohster 25 MarpmWed, 25 Mar 2015 20:56:29 +03002015-03-25T20:56:29+03:0008 2015, 20:56:29
24

Знак «плюс» иногда префикс для формата времени, указывающего смещение. Это также может означать длительность. Например:

 +4: 00 +10: 00 +4: 00
 +6: 00 +0: 00 +6: 00
ответил outis 26 MaramThu, 26 Mar 2015 00:27:54 +03002015-03-26T00:27:54+03:0012 2015, 00:27:54
21

Другая возможность заключалась бы в добавлении метки «prime» в конце, как это иногда (часто в разное время). Минуты и секунды будут выглядеть как 4′33″, поэтому одно простое число минут, поэтому используйте 1:30′ в течение полутора часов.

ответил Random832 26 MaramThu, 26 Mar 2015 02:56:31 +03002015-03-26T02:56:31+03:0002 2015, 02:56:31
18

Вы также можете показать минуты с меньшим шрифтом.
На секундомерах это делается для секунд или миллисекунд.

введите описание изображения здесь>> </p>



<p> <img src =

скачать источник bmml - каркасы созданный с помощью макетов Balsamiq

ответил Jørn E. Angeltveit 26 MarpmThu, 26 Mar 2015 20:12:37 +03002015-03-26T20:12:37+03:0008 2015, 20:12:37
15

Международный стандарт ISO 8601 предлагает P04:00 или P4H

Обратите внимание, что 4h00 не однозначен, так как некоторые люди склонны записывать часы так. 4h00m или 4h00min будет лучше.

Там также есть значки: секундомер â ± (с большими кнопками) часто обозначает длительность (реже часовое стекло â ³), где часы

ответил Crissov 26 MaramThu, 26 Mar 2015 04:33:05 +03002015-03-26T04:33:05+03:0004 2015, 04:33:05
14

Вы можете использовать десятичные знаки. Так, например:

90 минут будут 1.5 hours вместо 1:30

3 часа и 45 минут будут 3.75 вместо 3:45

Этот формат очень просканирован и упрощает суммирование значений в вашей голове.

ответил Eric Remer 26 MaramThu, 26 Mar 2015 00:53:24 +03002015-03-26T00:53:24+03:0012 2015, 00:53:24
7

возможно, вне сферы действия, но сканирование таблицы для обнаружения покровителей не очень удобно. Если ресурсы доступны, я бы пошел с горизонтальной диаграммой, состоящей из штабелей:

введите описание изображения здесь>> </p>

<p> Он предлагает лучшую перспективу процентного времени для каждого состояния и легче сканировать дни вне графика. </p></body></html>

ответил Onofre Pouplana 1 PMpWed, 01 Apr 2015 12:18:47 +030018Wednesday 2015, 12:18:47
4

ISO 8601 Продолжительность

Как упоминалось в ответе Крисовым, стандарт ISO 8601 определяет текстовое представление промежутка времени в этом формате: PnYnMnDTnHnMnS, называемый Durations .

В этом формате P отмечает начало. T отделяет часть дней от части времени (дробный день) и опускается в течение целых дней.

Примеры:

  • P1D = Один целый день.
  • PT5M = 5 минут.
  • PT4H30M означает «четыре с половиной часа».
  • P3Y6M4DT12H30M5S представляет продолжительность «три года, шесть месяцев, четыре дня, двенадцать часов, тридцать минут и пять секунд».

Even Briefer: 4H 30M

Вы можете обрезать PT для презентации пользователю. Таким образом, четыре с половиной часа будут: 4H30M.

Возможно, добавьте пространство для чтения: 4H 30M.

пример диаграммы с использованием представления стиля времени ISO 8601

Pros

Поверхность заключается в том, что этот формат недвусмыслен и не будет путать с каким-либо другим значением. Другим преимуществом является то, что это стандарт. И значения несколько интуитивно понятны и легко читаются и понимаются.

Против

Один недостаток заключается в том, что пользователи могут быть не знакомы. Поэтому может понадобиться момент объяснения или обучения.

Программирование

Некоторые библиотеки программирования могут анализировать и генерировать такие строки. Для Java библиотека Joda-Time делает это с помощью Period class. Аналогично, новый пакет java.time встроенный в Java 8 также предлагает Period .

Пример использования Joda-Time 2.7.

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

Выход:

period: PT7H
ответил Basil Bourque 28 MarpmSat, 28 Mar 2015 20:14:02 +03002015-03-28T20:14:02+03:0008 2015, 20:14:02
1

JIRA использует нотацию стиля «3h 15m», которая работает для меня.

С другой стороны, я использовал систему расписания, в которой время вводилось через 15-минутные блоки. Я обнаружил, что мне нужно вводить время в виде десятичных значений, таких как 3.25, был неинтуитивным способом выражения продолжительности 3h 15 м.

В приведенном примере несколько вещей не ясны:

Что такое гранулярность? Минут ?, 5 минут или 30 минут? Если вы показываете что-то вроде 24-часовых дней, разделенных на несколько штатов, я бы подумал о линиях процентных ставок или сегментированных гистограмм, а не о часах /минутах, которые могут быть слишком точными для представления. Также помните, что два раза в год вы получаете 23 или 25 часов.

ответил GrantB 30 MarpmMon, 30 Mar 2015 12:23:58 +03002015-03-30T12:23:58+03:0012 2015, 12:23:58
0

Еще одно решение - показать секунды. Поскольку секунды будут быстро меняться , будет ясно, что время постоянно меняется. Я не рекомендую это решение, но с точки зрения ясности он работает.

ответил sixtyfootersdude 27 MarpmFri, 27 Mar 2015 19:51:19 +03002015-03-27T19:51:19+03:0007 2015, 19:51:19
0

Мне кажется, что путаница происходит из-за того, что есть два места низкого порядка с обоими методами. Вы можете взять все данные в фиксированные 3 десятичных знака (или 1 десятичное место) часа, используя десятичную точку и округлить перед отображением. Не забудьте сохранить данные точными, выполнив математику в целочисленных минутах внутри, поэтому незначительные ошибки с плавающей запятой не могут возникать при суммировании. Другая идея - сообщить все в считанные минуты.

Если вы испытываете некоторые альтернативы для некоторых пользователей, вы можете найти лучшее решение, возможно, что-то еще не появилось. Некоторые могут подумать, что ваша задача - решить эту двусмысленность.

ответил Markeee 28 MarpmSat, 28 Mar 2015 18:10:22 +03002015-03-28T18:10:22+03:0006 2015, 18:10:22

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132