Вверх ↑
Этот топик читают: Гость
Ответов: 8
Рейтинг: 0
#1: 2019-11-19 11:28:50 ЛС | профиль | цитата
Доброго дня всем.

Прошу помощи в написании простенькой консольной программы по переводу секунд в чч:мм:сс
т.е. при запуске в параметрах консоли указать кол-во секунд, а на выходе консоли получить соответственно чч:мм:сс

Крутил-крутил, ничего в голову не идёт, а штатными средствами не получается
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 8888
Рейтинг: 823
#2: 2019-11-19 11:45:29 ЛС | профиль | цитата
mxm199:
секунды


Add(DateConvertor,5320530,308,119)
{
Mode=9
Format="HH:mm:ss"
link(onResult,3404464:doText,[])
}
Add(Edit,15124357,182,112)
{
Left=20
Top=10
Width=80
Text="10000"
DataType=2
ClearAfterEnter=1
Point(doSelectAll)
link(onEnter,16017241:doEvent1,[])
}
Add(Label,3404464,357,119)
{
Left=115
Top=15
}
Add(Hub,16017241,224,119)
{
link(onEvent1,7147209:doCalc,[])
link(onEvent2,15124357:doSelectAll,[(249,132)(249,153)(172,153)(172,132)])
}
Add(MathParse,7147209,259,119)
{
DataCount=1
MathStr="%1/86400 + 700000"
link(onResult,5320530:doConvert,[])
}

карма: 19

0
Ответов: 537
Рейтинг: 14
#3: 2019-11-19 12:14:03 ЛС | профиль | цитата
Минуты
Add(DateConvertor,5320530,245,105)
{
Mode=9
Format="HH:mm:ss"
link(onResult,3404464:doText,[])
}
Add(Edit,15124357,119,98)
{
Left=20
Top=10
Width=80
Text="60"
DataType=2
ClearAfterEnter=1
Point(doSelectAll)
link(onEnter,16017241:doEvent1,[])
}
Add(Label,3404464,294,105)
{
Left=115
Top=15
}
Add(Hub,16017241,161,105)
{
link(onEvent1,7147209:doCalc,[])
link(onEvent2,15124357:doSelectAll,[(186,118)(186,139)(109,139)(109,118)])
}
Add(MathParse,7147209,196,105)
{
@Hint=#13:Минуты в часы|
DataCount=1
MathStr="%1/1440 + 700000"
link(onResult,5320530:doConvert,[])
AddHint(12,-33,91,13,@Hint)
}


Редактировалось 1 раз(а), последний 2019-11-19 12:14:23
карма: 4

0
Ответов: 8
Рейтинг: 0
#4: 2019-11-19 13:05:06 ЛС | профиль | цитата
Леонид писал(а):
mxm199:
секунды

Sersey писал(а):
Минуты


Спасибо огромное! Считает)
Но как бы это завернуть не в оконное приложение, а консольное, для работы из командной строки?
карма: 0

0
Ответов: 1925
Рейтинг: 172
#5: 2019-11-29 20:09:33 ЛС | профиль | цитата
mxm199, а как переводить-то надо? С накоплением часов? В схемах Sersey и Леонид происходит прокручивание, если указано секунд/минут больше, чем в сутках. Например, 86000 секунд = 23:53:20, а 87000 = уже 00:10:00, т.е. часы не накапливаются, а прокручиваются через 00:00:00. Если нужно с накоплением, то вот:
Add(MultiElementEx,3257242,455,168)
{
@Hint=#44:Перевод миллисекунд в 00:00:00:000 и обратно|
link(onResult,3315150:doDelete,[])
}
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
link(onResult,16314722:doConvert,[])
link(Op1,5723932:Var2,[])
}
Add(Math,5978408,217,147)
{
@Hint=#19:Остаток после часов|
OpType=8
Op2=3600000
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
link(onResult,15365359:doConvert,[])
link(Op1,3853996:Var2,[])
}
Add(Math,5498644,301,210)
{
@Hint=#19:Остаток после минут|
OpType=8
Op2=60000
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
link(onResult,730951:doConvert,[])
link(Op1,12549272:Var2,[])
}
Add(Math,4794364,385,273)
{
@Hint=#35:Остаток после секунд (миллисекунды)|
OpType=8
Op2=1000
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,12757121,448,21)
{
link(Out,959674:doWork2,[])
Primary=[8064343,-63,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,7218978,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,236347,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,2135679,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,467110,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,11254816,343,161)
{
Left=40
Top=35
Width=195
Text=""
DataType=1
link(onEnter,1627429:doOperation,[])
}
Add(Label,13922975,567,168)
{
Left=240
Top=40
}
Add(Math,1627429,392,168)
{
OpType=2
Op2=1000
link(onResult,3257242:doMS2Format,[])
}
Add(Delete,3315150,511,168)
{
Count=4
Direction=1
link(onDelete,13922975:doText,[])
}
Схему я делал для работы с миллисекундами, но если умножать ваши секунды на 1000, то получим то, что нужно. 100 000 => 27:46:40.

Редактировалось 1 раз(а), последний 2019-11-29 20:14:40
карма: 9
0
5
Сообщение
...
Прикрепленные файлы
(файлы не залиты)