|
Получить время в часах минутах секундах из разности дат? | ☑ | ||
---|---|---|---|---|
0
pvase
18.07.19
✎
10:51
|
Здравствуйте. Суть задачи в 1С 8.3, получить в виде строки время в формате Часов, Минут, Секунд. Вот пример:
ВремяСек = '02.01.2019 09:03:47' - '01.01.2019 12:24:31' ВремяФормат = ""+Цел(ВремяСек/3600)+" час. " +Цел((ВремяСек-(Цел(ВремяСек/3600)*3600))/60)+" мин. " +Число(ВремяСек-Цел(ВремяСек/60)*60)+" сек."; Может в 1С есть встроенная функция, какая-то чтобы не писать эти математические операции? |
|||
1
Aleksey
18.07.19
✎
10:57
|
Добавь 1 января 2019 года и типовой функцией получи нужные числа
|
|||
2
vfire1000
18.07.19
✎
11:01
|
ВремяСек = (ТекущаяДата() + 879445) - ТекущаяДата();
_Дата = Дата(1,1,1) + ВремяСек; ВремяФормат = "" + Час(_Дата) + " час. " + Минута(_Дата) + " мин. " + Секунда(_Дата) + " сек." |
|||
3
artdev
18.07.19
✎
11:03
|
(1) А если больше 24 часов?
|
|||
4
artdev
18.07.19
✎
11:04
|
(2) А 26 часов как отразить?
|
|||
5
Aleksey
18.07.19
✎
11:05
|
(4)
Функция РазностьВремени(Время1, Время2); Разность = Время1 - Время2; Если Разность > 0 Тогда Часов = Цел(Разность / 3600); Минут = Цел((Разность - Часов * 3600) / 60); Возврат Дата(1, 1, 1, Часов, Минут, 0); Иначе Возврат Дата(1,1,1,0,0,0); КонецЕсли; КонецФункции //Пример использования Опоздание= РазностьВремени(ВремяПриезда, ВремяПодачи); |
|||
6
Garykom
гуру
18.07.19
✎
11:07
|
Нахрена так сложно? Разность дат = дата от начала времен же.
Просто Формат используй и получится разница в годах, месяцах, днях, часах, минутах, секундах. Лишнее откинуть и все. |
|||
7
pvase
18.07.19
✎
11:12
|
(3,4) Как раз надо больше. Это время потраченных работ, поэтому, если будет 49 часов 23 минуты, 12 секунд - это то что нужно.
|
|||
8
hhhh
18.07.19
✎
11:12
|
(6) ну если разность дат брать, то она выдаст 2019 - 1 = 2018? так? что сейчас 2018й год.
|
|||
9
hhhh
18.07.19
✎
11:13
|
(7) они круглосуточно работают? это нарушение трудового кодекса, должен быть 8-часовой рабочий день.
|
|||
10
vfire1000
18.07.19
✎
11:15
|
(7) никогда мне так не надо было
Сделайте так: ВремяФормат = "" + ((День(_Дата)-1) * 24 + Час(_Дата)) + " час. " + Минута(_Дата) + " мин. " + Секунда(_Дата) + " сек."; |
|||
11
pvase
18.07.19
✎
11:20
|
(8) Нет конечно, это учет потраченного времени для расчета стоимости выставления услуг и оплаты программистам. Осталось туда прикрутить еще график работ и работы не по графику. Пока еще думаю как это сделать, если будут варианты - буду рад за помощь.
Т.е. суть задачи. Программист берется за работу, фиксируется дата+Время начала работ. Потом он работает, отвлекается на другие задачи, это все фиксируется, а в конце, когда программист ставит отметку о выполнении задачи - фиксируется конечное время. По этому времени потом выставляется счет предприятию. Это у нас так пытаются обеспечить оплату услуг программистов в центральном офисе всех предприятий холдинга. |
|||
12
pvase
18.07.19
✎
11:22
|
Реально, фактически для расчета надо вот такое значение: Окр(ВремяСек/3600,3)
Но для наглядности надо выводить в часах, минутах, секундах. |
|||
13
Lama12
18.07.19
✎
11:29
|
(11) А то, что программист отвлекается, и чем больше он отвлекается тем больше нужно время на возврат к задачи, это учитывается?
|
|||
14
Garykom
гуру
18.07.19
✎
11:50
|
(8) Все правильно между 2019 и 1 годом аж 2018 лет прошло, не понял в чем проблема?
|
|||
15
ink-nsk
18.07.19
✎
12:20
|
(11) Т.е. если программист взялся за задачу компании А, но его в рабочее время отвлекли наглые сотрудники компании В. То компании В уйдет счет из расчета основного времени, а в копанию В с коэффициентом переработки?
А как отпуск и три дня больничного выставляются предприятиям холдинга? Зы: так просто из любопытства. |
|||
16
ink-nsk
18.07.19
✎
12:20
|
"а в копанию В с коэффициентом переработки"
опечатка а в копанию А с коэффициентом переработки |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |