Вход | Регистрация
 
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
"а в копанию В с коэффициентом переработки"
опечатка
а в копанию А с коэффициентом переработки

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