Вверх ↑
Ответов: 66
Рейтинг: 1
#1: 2019-09-14 11:20:42 ЛС | профиль | цитата
Сделал программу, которая принимает на вход количество секунд и переводит их в дни или в часы, если меньше дня.
При вводе меньше 100000 работает всё корректно, например при 86400 выводит 24 часа, а при 86401 выводит 1 день.
А при вводе 100000 и больше выводит иногда в часах, а иногда в днях

Add(MainForm,2953706,21,105)
{
}
Add(LineBreakEx,13507275,343,133)
{
Caption="timeleft"
}
Add(Math,1951280,252,133)
{
OpType=3
Op2=86400
ResultType=0
link(onResult,16652430:doStrCat,[])
}
Add(StrCat,16652430,294,133)
{
Str1="Дней: "
link(onStrCat,13507275:doWork,[])
}
Add(If_else,10579533,203,133)
{
Type=2
Op2=Integer(86400)
link(onTrue,1951280:doOperation,[])
link(onFalse,12985682:doOperation,[(243,146)(243,188)])
}
Add(LineBreakEx,6431198,343,182)
{
Caption="timeleft"
}
Add(Math,12985682,252,182)
{
OpType=3
Op2=3600
ResultType=0
link(onResult,929549:doStrCat,[])
}
Add(StrCat,929549,294,182)
{
Str1="Часов: "
link(onStrCat,6431198:doWork,[])
}
Add(Edit,14027253,126,126)
{
Left=60
Top=30
Width=185
Text="Время в секундах"
link(onEnter,10579533:doCompare,[])
}
Add(Label,8827858,168,231)
{
Left=60
Top=60
Width=185
Height=20
Font=[MS Sans Serif,10,0,0,1]
Alignment=2
}
Add(LineBreakEx,12600775,105,231)
{
Caption="timeleft"
Type=1
link(OnEvent,8827858:doText,[])
}

--- Добавлено в 2019-09-14 11:31:14

Нашёл решение, перед условием поставил Math который прибавляет 0 и результат переводит в Integer
карма: 0

0
Редактировалось 2 раз(а), последний 2019-09-14 11:31:14