HiAsm - Конструктор программ

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » HiAsm - Конструктор программ » Готовые схемы » Перевод миллисекунд в 00:00:00:000 и обратно


Перевод миллисекунд в 00:00:00:000 и обратно

Сообщений 1 страница 3 из 3

1

Код:
Add(MultiElementEx,3257242,490,203)
{
 @Hint=#44:Перевод миллисекунд в 00:00:00:000 и обратно|
}
BEGIN_SDK
  Add(EditMultiEx,1939016,21,21)
  {
   WorkCount=#11:doMS2Format|11:doFormat2MS|
   EventCount=#8:onResult|
   VarCount=#7:vResult|
   DataCount=#4:Data|
   Width=538
   Height=277
   link(doMS2Format,14209334:doValue,[(77,27)(77,83)])
   link(doFormat2MS,12314645:doSplit,[(59,34)(59,685)])
   link(vResult,6233899:Var,[])
  }
  Add(Math,13512569,133,147)
  {
   @Hint=#4:Часы|
   OpType=7
   Op2=3600000
   ResultType=0
   link(onResult,16314722:doConvert,[])
   link(Op1,5723932:Var2,[])
  }
  Add(Math,5978408,217,147)
  {
   @Hint=#19:Остаток после часов|
   OpType=8
   Op2=3600000
   ResultType=0
   link(onResult,9134000:doOperation,[(261,153)(261,185)(205,185)(205,216)])
   link(Op1,5723932:Var3,[(223,131)])
  }
  Add(Memory,14209334,133,77)
  {
   Point(Data)
   link(onData,13512569:doOperation,[(177,83)(177,118)(121,118)(121,153)])
   link(Data,13427198:Var3,[(139,47)])
  }
  Add(Math,9134000,217,210)
  {
   @Hint=#6:Минуты|
   OpType=7
   Op2=60000
   ResultType=0
   link(onResult,15365359:doConvert,[])
   link(Op1,3853996:Var2,[])
  }
  Add(Math,5498644,301,210)
  {
   @Hint=#19:Остаток после минут|
   OpType=8
   Op2=60000
   ResultType=0
   link(onResult,11999598:doOperation,[(345,216)(345,248)(289,248)(289,279)])
   link(Op1,3853996:Var3,[(307,194)])
  }
  Add(GetDataEx,5723932,133,126)
  {
   link(Data,14209334:Value,[])
  }
  Add(GetDataEx,3853996,217,189)
  {
   link(Data,5978408:Result,[])
  }
  Add(Math,11999598,301,273)
  {
   @Hint=#7:Секунды|
   OpType=7
   Op2=1000
   ResultType=0
   link(onResult,730951:doConvert,[])
   link(Op1,12549272:Var2,[])
  }
  Add(Math,4794364,385,273)
  {
   @Hint=#35:Остаток после секунд (миллисекунды)|
   OpType=8
   Op2=1000
   ResultType=0
   link(onResult,2659809:doConvert,[])
   link(Op1,12549272:Var3,[(391,257)])
  }
  Add(GetDataEx,12549272,301,252)
  {
   link(Data,5498644:Result,[])
  }
  Add(FormatStr,13938374,175,371)
  {
   DataCount=4
   Mask="%1:%2:%3:%4"
   link(onFString,10672996:doEvent1,[])
   link(Str1,16314722:Var,[])
   link(Str2,15365359:Var,[(188,307)(265,307)])
   link(Str3,730951:Var,[(195,338)(349,338)])
   link(Str4,2659809:Var,[(202,343)(433,343)])
  }
  Add(ConvertorEx,16314722,175,147)
  {
   SymbolFill="0"
   link(onResult,5978408:doOperation,[])
  }
  Add(ConvertorEx,15365359,259,210)
  {
   SymbolFill="0"
   link(onResult,5498644:doOperation,[])
  }
  Add(ConvertorEx,730951,343,273)
  {
   SymbolFill="0"
   link(onResult,4794364:doOperation,[])
  }
  Add(ConvertorEx,2659809,427,273)
  {
   Digits=3
   SymbolFill="0"
   link(onResult,13938374:doString,[(471,279)(471,328)(163,328)(163,377)])
  }
  Add(LineBreak,11575620,448,21)
  {
   link(Out,959674:doWork2,[])
   Primary=[8064343,-98,546]
  }
  Add(MultiStrPart,12314645,98,679)
  {
   Char=":"
   Count=4
   Direct=1
   Point(onNotFound)
   link(onSplit,10843225:doOperation,[(142,685)(142,720)(93,720)(93,755)])
   link(Str,13427198:Var2,[])
   link(onNotFound,11939949:doWork1,[(256,692)])
  }
  Add(Math,10843225,105,749)
  {
   OpType=2
   Op2=1000
   ResultType=0
   link(onResult,4934948:doOperation,[])
   link(Op1,12314645:Part2,[])
  }
  Add(Math,4934948,147,749)
  {
   OpType=2
   Op2=60000
   ResultType=0
   link(onResult,13651759:doOperation,[])
   link(Op1,12314645:Part3,[(153,730)(118,730)])
  }
  Add(Math,13651759,189,749)
  {
   OpType=2
   Op2=3600000
   ResultType=0
   link(onResult,9603015:doCalc,[(233,755)(233,787)(86,787)(86,818)])
   link(Op1,12314645:Part4,[(195,730)(125,730)])
  }
  Add(MathParse,9603015,98,812)
  {
   DataCount=4
   MathStr="%1 + %2 + %3 + %4"
   ResultType=0
   link(onResult,11939949:doWork2,[])
   link(X1,12314645:Part1,[])
   link(X2,10843225:Result,[])
   link(X3,4934948:Result,[(118,796)(153,796)])
   link(X4,13651759:Result,[(125,796)(195,796)])
  }
  Add(HubEx,959674,490,21)
  {
   link(onEvent,8649549:doValue,[])
  }
  Add(LineBreak,16713528,455,35)
  {
   link(Out,959674:doWork3,[(494,41)])
   Primary=[15320020,-175,777]
  }
  Add(Copy,7424049,378,434)
  {
   Position=1
   Count=2
   link(onCopy,12527387:doCase,[])
   link(Str,13556570:Var2,[])
  }
  Add(Case,12527387,420,434)
  {
   Value=String(00)
   link(onNextCase,11929216:In,[(464,440)(464,398)])
   link(onTrue,12120580:doDelete,[])
  }
  Add(Delete,12120580,469,441)
  {
   Count=3
   link(onDelete,3831225:doWork2,[])
   link(Str,13556570:Var3,[(475,418)])
  }
  Add(Hub,10672996,224,371)
  {
   OutCount=3
   link(onEvent1,10961629:doEvent1,[])
   link(onEvent2,10541691:doFor,[(273,384)(273,440)])
   link(onEvent3,13436710:doData,[(268,391)(268,573)])
  }
  Add(Memory,15742967,378,371)
  {
  }
  Add(GetDataEx,13556570,378,413)
  {
   link(Data,15742967:Value,[])
  }
  Add(Hub,10961629,336,371)
  {
   InCount=2
   OutCount=1
   link(onEvent1,15742967:doValue,[])
  }
  Add(LineBreak,14954770,294,378)
  {
   link(Out,10961629:doEvent2,[])
   Primary=[14491142,238,63]
  }
  Add(For,10541691,308,434)
  {
   Start=1
   End=3
   onBreakEnable=0
   link(onEvent,7424049:doCopy,[])
   link(onStop,15140427:doCopy,[(352,447)(352,510)])
  }
  Add(LineBreak,9055928,266,441)
  {
   link(Out,10541691:doStop,[])
   Primary=[11929216,210,-49]
  }
  Add(Copy,15140427,364,504)
  {
   Position=1
   Count=3
   link(onCopy,409263:doCase,[])
   link(Str,7207430:Var2,[])
  }
  Add(Case,409263,406,504)
  {
   Value=String(000)
   link(onTrue,10472968:doDelete,[])
  }
  Add(Delete,10472968,455,511)
  {
   Count=2
   link(onDelete,3831225:doWork3,[(515,517)])
   link(Str,7207430:Var3,[(461,488)])
  }
  Add(HubEx,3831225,511,441)
  {
   link(onEvent,14491142:In,[])
  }
  Add(GetDataEx,7207430,364,483)
  {
   link(Data,13556570:Var1,[(370,418)])
  }
  Add(DoData,13436710,308,567)
  {
   link(onEventData,8064343:In,[])
   link(Data,7207430:Var1,[(314,488)])
  }
  Add(GetDataEx,13427198,98,42)
  {
   Angle=3
   link(Data,1939016:Data,[(27,47)])
  }
  Add(Memory,8649549,511,21)
  {
   link(onData,1939016:onResult,[])
  }
  Add(LineBreak,11047145,511,70)
  {
   Type=1
   link(Data,8649549:Value,[])
   Primary=[6233899,-490,196]
  }
  Add(HubEx,11939949,252,812)
  {
   link(onEvent,15320020:In,[])
  }
END_SDK
Add(Edit,16019876,280,196)
{
 Left=25
 Top=15
 Width=305
 Text="123456789"
 ClearAfterEnter=1
 link(onEnter,5477533:doEvent1,[])
}
Add(Edit,13414941,280,280)
{
 Left=25
 Top=40
 Width=305
 Text=""
 ClearAfterEnter=1
 link(onEnter,10520710:doEvent1,[])
}
Add(Hub,5477533,329,203)
{
 link(onEvent1,3257242:doMS2Format,[])
 link(onEvent2,2929108:doData,[])
}
Add(DoData,2929108,357,210)
{
 link(onEventData,3704682:In,[])
 link(Data,2953299:Var,[])
}
Add(LineBreak,7017707,238,280)
{
 link(Out,13414941:doText,[])
 Primary=[3704682,161,-70]
}
Add(LineBreak,12755152,490,252)
{
 Type=1
 link(Data,15801261:Var2,[])
 Primary=[2953299,-133,-70]
}
Add(Hub,10520710,329,287)
{
 link(onEvent1,14227441:In,[])
 link(onEvent2,13076840:doData,[])
}
Add(DoData,13076840,392,294)
{
 link(onEventData,13003572:In,[])
 link(Data,12197484:Var,[])
}
Add(LineBreak,13626345,238,196)
{
 link(Out,16019876:doText,[])
 Primary=[13003572,196,98]
}
Add(LineBreak,16421855,504,252)
{
 Type=1
 link(Data,15801261:Var3,[(510,243)])
 Primary=[12197484,-112,14]
}
Add(LineBreak,15687520,448,210)
{
 link(Out,3257242:doFormat2MS,[])
 Primary=[14227441,-91,77]
}
Add(GetDataEx,15801261,490,238)
{
 link(Data,3257242:vResult,[])
}

0

2

3042
Блин как то всё сложно. Ведь есть конвертер времени DateConvertor
Разве он не подойдёт?

0

3

Да, в DateConvertor есть параметр StrFmtToDateUnix, но он переводит дату-время в привязке к 01.01.1970. А моя схема просто не привязанное к дате время, причём часы там - накопительные, т.е. 1234567890 мсек она переведёт в 342:56:07:890, в сутки уже не переводит. Ну, это чисто специфическая схема, например, для подсчёта общего времени звучания аудио или каких-то процессов.

Отредактировано 3042 (2022-12-10 21:59:07)

0


Вы здесь » HiAsm - Конструктор программ » Готовые схемы » Перевод миллисекунд в 00:00:00:000 и обратно


Рейтинг форумов | Создать форум бесплатно