1 1 1 1 1 1 1 1 1 1 Рейтинг 5.00 (1 голос)

Суммирование временных отрезков

Арифметическое выражение с временными отсчетами

 
Полученный результат

Расчет времени простоя

Решил немного дополнить уже существующий  Калькулятор времени.

Достаточно часто встречается задача  определить общее время каких либо процессов. Например у вас есть статистика работы какого либо механизма в виде таблицы продолжительности (или простоя) работы:

1:45:12

2:1:17

0:23:21

и так далее

где 1:45:12 - один час сорок пять минут двенадцать секунд.

И Вам необходимо посчитать  сколько же  времени механизм работал ( не работал)

Можно конечно все разместить в Excel и там просто просуммировать  все значения, но у нас онлайн калькулятор поэтому  у нас подход будет другой.


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

Например: сотрудник работал с 7:43 по 8:15 потом с 8:17 по 12:11 потом с 13:15 по 14:47 и так далее. Спрашивается, сколько же времени он работал?

Не очень удобно считать вручную подобную задачу, так как  велика вероятность ошибки.

Для нашего последней задачи ответ таков,  что сотрудник работал пять часов пятьдесят восемь минут.

 
Чем же еще Вас может порадовать  созданный калькулятор?
 
1.  Возможностью использовать кроме сложения и вычитания еще две операции ( умножение и деление). Это позволяет сразу рассчитывать относительную долю рабочего времени по отношению к суткам (или к другому отрезку - например длительности рабочего дня)
 
2. Для обозначения часов, минут и секунд мы можете так и обозначать данные 10м - десять минут, 45с - сорок пять секунд, 3ч - три часа. На первый взгляд это не очень удобно - это ж каждый раз надо добавлять букву (ч, м или с), но для упрощения существует третий пункт
 
3. Возможностью  группировать одинаковые размерности .  Группировка - это возможность объединять часы(дни, минуты, секунды) в группы.
Можно написать 45м+12м+24м  а можно написать (45+12+24)м  - результат получим один и тот же
 
 
4. Для англоязычных пользователей, возможно использовать (латинский алфавит для обозначения часов(h) минут(m) и секунд(s)
 
5. Возможно использовать еще такое понятие как сутки (Для рунета это обозначение идет как день(д), для латиницы - day(d))
 

Синтаксис

Для пользователей XMPP клиентов

t_sum арифметическое выражение содержащее временные отсчеты (отрезки)

 

Примеры

 Более подробно рассмотрим задачу описанную в самом начале статьи.

Сотрудник работал с 7:43 по 8:15 потом с 8:17 по 12:11 потом с 13:15 по 14:47. Определить общее время работы и долю рабочего времени по отношению к продолжительности рабочего дня(8 часов)

Первая же идея это складывать как  и описано выше 7ч+43м и так далее, но мы воспользуемся группировкой.

И второе, раз нам надо определять промежуток между двумя отсчетами, то нам придется вычитать из более поздего времени более ранее. Для первого  периода - продолжительность будет рассчитываться так (8-7)ч+(15-43)м

Но мы упростим еще проще и будем вычитать из более ранего отчета более позднее. ( в абсолютном выражении результат будет тот же)

Итоговое выражение будет таково (с учетом группирования)

t_sum (7-8+8-12+13-14)ч+(43-15+17-11+15-47)м

Суммма временных отрезков равна 
В секундах -21480
Альтернативный вывод 
Суток 0
Часов -5
Минут -58
Секунд 0
 
Как Вы видите результат совпадает с вышеуказанным, только с знаком минус.
 
теперь нам надо рассчитать долю рабочего дня.
Мы можем сразу в калькуляторе разделить  на 8 часовой рабочий день
вид будет такой
 
t_sum ((7-8+8-12+13-14)ч+(43-15+17-11+15-47)м)/(8ч)
 
Не забывайте при делении всегда брать знаменатель в скобки, иначе получите неверный результат.
Ответ будет стандартного шаблона
 
Суммма временных отрезков равна 
В секундах -0.74583333333333
Альтернативный вывод 
Суток 0
Часов 0
Минут 0
Секунд 0
 
Но тем не менее он содержит правильный ответ.
Доля рабочего дня данного сотрудника составит 0,7458=74,58%

Рассчитать общий простой оборудования если известны, время простоя.

0:21:11

0:0:13

3:2:43

0:19:35

Ну здесь все очень просто 

пишем t_sum (0+0+3+0)ч+(21+2+19)м+(11+13+43+35)с

и получаем ответ

Суммма временных отрезков равна 
В секундах 13422
Альтернативный вывод 
Суток 0
Часов 3
Минут 43
Секунд 42
 
Да и по умолчанию, если не указана размерность временная, то идет расчет посекундный.

Рассчитать сколько содержаться часов минут и секунд в сутках, если сутки выражены в виде дробной части 0.452354?

Хм. запросто 

t_sum 0.452354d

Ответ не замедлит
 
Суммма временных отрезков равна 
В секундах 39083.3856
Альтернативный вывод 
Суток 0
Часов 10
Минут 51
Секунд 23