Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Получить время в часах минутах секундах из разности дат?

Получить время в часах минутах секундах из разности дат?
Я
   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С есть встроенная функция, какая-то чтобы не писать эти математические операции?
 
 
   Aleksey
 
1 - 18.07.19 - 10:57
Добавь 1 января 2019 года и типовой функцией получи нужные числа
   vfire1000
 
2 - 18.07.19 - 11:01
ВремяСек = (ТекущаяДата() + 879445) - ТекущаяДата();

_Дата = Дата(1,1,1) + ВремяСек;

ВремяФормат = "" + Час(_Дата) + " час. " + Минута(_Дата) + " мин. " + Секунда(_Дата) + " сек."
   artdev
 
3 - 18.07.19 - 11:03
(1) А если больше 24 часов?
   artdev
 
4 - 18.07.19 - 11:04
(2) А 26 часов как отразить?
   Aleksey
 
5 - 18.07.19 - 11:05
(4)
 Функция РазностьВремени(Время1, Время2);
    
    Разность = Время1 - Время2;
    
    Если Разность > 0 Тогда
        Часов = Цел(Разность / 3600);
        Минут = Цел((Разность - Часов * 3600) / 60);
        
        Возврат Дата(1, 1, 1, Часов, Минут, 0);
        
    Иначе
        Возврат Дата(1,1,1,0,0,0);
    КонецЕсли;
    
КонецФункции


//Пример использования    

Опоздание= РазностьВремени(ВремяПриезда, ВремяПодачи);
   Garykom
 
6 - 18.07.19 - 11:07
Нахрена так сложно? Разность дат = дата от начала времен же.
Просто Формат используй и получится разница в годах, месяцах, днях, часах, минутах, секундах.
Лишнее откинуть и все.
   pvase
 
7 - 18.07.19 - 11:12
(3,4) Как раз надо больше. Это время потраченных работ, поэтому, если будет 49 часов 23 минуты, 12 секунд - это то что нужно.
   hhhh
 
8 - 18.07.19 - 11:12
(6) ну если разность дат брать, то она выдаст 2019 - 1 = 2018? так? что сейчас 2018й год.
   hhhh
 
9 - 18.07.19 - 11:13
(7) они круглосуточно работают? это нарушение трудового кодекса, должен быть 8-часовой рабочий день.
   vfire1000
 
10 - 18.07.19 - 11:15
(7) никогда мне так не надо было

Сделайте так:
ВремяФормат = "" + ((День(_Дата)-1) * 24 + Час(_Дата)) + " час. " + Минута(_Дата) + " мин. " + Секунда(_Дата) + " сек.";
   pvase
 
11 - 18.07.19 - 11:20
(8) Нет конечно, это учет потраченного времени для расчета стоимости выставления услуг и оплаты программистам. Осталось туда прикрутить еще график работ и работы не по графику. Пока еще думаю как это сделать, если будут варианты - буду рад за помощь.

Т.е. суть задачи. Программист берется за работу, фиксируется дата+Время начала работ. Потом он работает, отвлекается на другие задачи, это все фиксируется, а в конце, когда программист ставит отметку о выполнении задачи - фиксируется конечное время. По этому времени потом выставляется счет предприятию. Это у нас так пытаются обеспечить оплату услуг программистов в центральном офисе всех предприятий холдинга.
   pvase
 
12 - 18.07.19 - 11:22
Реально, фактически для расчета надо вот такое значение: Окр(ВремяСек/3600,3)
Но для наглядности надо выводить в часах, минутах, секундах.
   Lama12
 
13 - 18.07.19 - 11:29
(11) А то, что программист отвлекается, и чем больше он отвлекается тем больше нужно время на возврат к задачи, это учитывается?
   Garykom
 
14 - 18.07.19 - 11:50
(8) Все правильно между 2019 и 1 годом аж 2018 лет прошло, не понял в чем проблема?
   ink-nsk
 
15 - 18.07.19 - 12:20
(11) Т.е. если программист взялся за задачу компании А, но его в рабочее время отвлекли наглые сотрудники компании В. То компании В уйдет счет из расчета основного времени, а в копанию В с коэффициентом переработки?
А как отпуск и три дня больничного выставляются предприятиям холдинга?

Зы: так просто из любопытства.
   ink-nsk
 
16 - 18.07.19 - 12:20
"а в копанию В с коэффициентом переработки"
опечатка
а в копанию А с коэффициентом переработки

Список тем форума
Рекламное место пустует  Рекламное место пустует
Прочитай, хотя бы, Митичкина "Разработка в системе 1С:Предприятие 8". Волшебник
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.