Имя: Пароль:
1C
 
Помогите упростить приведение к формату dd.hh.mm.ss.ms
0 likesport
 
29.02.12
11:31
ДопСтрокаВремя = "Затраченное время: " + Формат((ВремяКонцаВыполнения-ВремяНачала)/1000, "ЧДЦ=3; ЧРД=.; ЧН=0; ЧГ=");
           
           КоличествоМиллисекунд = ВремяКонцаВыполнения - ВремяНачала;
           КоличествоСекунд      = Цел(КоличествоМиллисекунд / 1000);
           КоличествоМинут      = Цел(КоличествоСекунд  / 60);
           КоличествоЧасов      = Цел(КоличествоМинут   / 60);
           КоличествоДней          = Цел(КоличествоЧасов   / 24);
       
           КоличествоЧасов          = ?(КоличествоЧасов  > 24, Цел(КоличествоЧасов - КоличествоДней * 24), КоличествоЧасов);
           КоличествоМинут          = ?(КоличествоМинут  > 60, Цел(КоличествоМинут - КоличествоДней * 24 - КоличествоЧасов * 60), КоличествоМинут);
           КоличествоСекунд      = ?(КоличествоСекунд > 60, Цел(КоличествоСекунд - КоличествоДней * 24 - КоличествоЧасов * 60 - КоличествоМинут * 60), КоличествоСекунд);
           КоличествоМиллисекунд = ?(КоличествоМиллисекунд > 1000, КоличествоМиллисекунд  - КоличествоДней * 24 * 60 * 60 * 1000 - КоличествоЧасов * 60 * 60 * 1000 - КоличествоМинут * 60 * 1000 - КоличествоСекунд * 1000, КоличествоМиллисекунд);
           
           ДопСтрокаВремя = ?(КоличествоДней         > 0, "" + КоличествоДней         + " д. ",  "") +
                            ?(КоличествоЧасов         > 0, "" + КоличествоЧасов         + " ч. ",  "") +
                            ?(КоличествоМинут         > 0, "" + КоличествоМинут         + " мин ", "") +
                            ?(КоличествоСекунд         > 0, "" + КоличествоСекунд     + " сек ", "") +
                            ?(КоличествоМиллисекунд > 0, "" + КоличествоМиллисекунд + " мс ",  "");
1 Ненавижу 1С
 
гуру
29.02.12
11:33
страсти
2 likesport
 
29.02.12
11:33
(1) Ага. Криво как-то. Жаль нету штатной процедуры. Или я плохо смотрел %)
3 Kreont
 
29.02.12
11:37
Формат("dd.hh.mm.ss") + милисекунды только добавить, хотя откуда они взялись )))
4 Asmody
 
29.02.12
11:40
(0) остаток от деления отменили штоль?
5 likesport
 
29.02.12
11:45
(4) ВремяКонцаВыполнения - ВремяНачала - это время из функции
ВремяНачала = мЯваСкрипт.Eval("(new Date()).valueOf()");
т.е., например 1 330 501 327 840
ну и ВремяКонцаВыполнения, в таком же формате
6 likesport
 
29.02.12
11:45
(5) где мЯваСкрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
   мЯваСкрипт.Language = "javascript";
7 Ненавижу 1С
 
гуру
29.02.12
11:46
Функция ПолучитьЦелуюЧасть(Делимое,Делитель)
 Остаток = Делимое % Делитель;
 Результат = (Делимое-Остаток)/Делитель;
 Делимое = Остаток;
 Возврат Результат;
КонецФункции

ВсегоМиллисекунд = ВремяКонцаВыполнения - ВремяНачала;
КоличествоДней   = ПолучитьЦелуюЧасть(ВсегоМиллисекунд,24*60*60*1000);
КоличествоЧасов  = ПолучитьЦелуюЧасть(ВсегоМиллисекунд,60*60*1000);
КоличествоМинут  = ПолучитьЦелуюЧасть(ВсегоМиллисекунд,60*1000);
КоличествоСекунд = ПолучитьЦелуюЧасть(ВсегоМиллисекунд,60*60*1000);
КоличествоМиллисекунд = ВсегоМиллисекунд;
8 Ненавижу 1С
 
гуру
29.02.12
11:46
+(7) исправить:

КоличествоСекунд = ПолучитьЦелуюЧасть(ВсегоМиллисекунд,1000);
9 likesport
 
29.02.12
11:49
(8)(7) Во! Нормально! Спасибо!!!
10 Ненавижу 1С
 
гуру
29.02.12
11:52
(9) привет славному городу Усть-Лабинску, земляк!
11 likesport
 
29.02.12
11:54
(10) O_o Привет! Не думал здесь что можно найти земляков :) Я сейчас в Краснодаре. В УЛ бываю на выходных, славный городок.
12 Ненавижу 1С
 
гуру
29.02.12
11:56
(11) отправил сообщение в аську ))