Вверх ↑
Этот топик читают: Гость
Ответов: 91
Рейтинг: 0
#1: 2015-03-19 15:32:25 ЛС | профиль | цитата
Здравствуйте!

Туплю... Как сложить несколько текстовых ячеек со временем: 0:10:00 + 0:20:00 + 0:11:25 чтобы получить = 0:41:25 ?
------------ Дoбавленo в 15.32:
Не получается через DateConvertor.

карма: 0

0
Ответов: 4630
Рейтинг: 749
#2: 2015-03-19 15:45:34 ЛС | профиль | цитата
Отдельные даты конвертируешь StrFmtToDateReal, плюсуешь, потом результат в DateRealToStrFmt.
Format=HH:mm:ss
карма: 26

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#3: 2015-03-19 16:04:46 ЛС | профиль | цитата
Netspirit писал(а):
потом результат в DateRealToStrFmt.
Format=HH:mm:ss

Не прокатит, нужна дата для обратного преобразования, а ее там не будет

Add(MainForm,2953706,77,161)
{
Height=115
}
Add(Edit,6291880,133,161)
{
Left=10
Top=15
Width=110
Text="0:10:00"
}
Add(Edit,9563989,182,161)
{
Left=130
Top=15
Width=110
Text="0:20:00"
}
Add(Edit,15562861,231,161)
{
Left=250
Top=15
Width=110
Text="0:11:25"
}
Add(Edit,2977128,287,294)
{
Left=250
Top=40
Width=110
Text=""
}
Add(Button,5668903,77,231)
{
Left=155
Top=40
TabOrder=-1
link(onClick,14500085:doConvert,[])
}
Add(DateConvertor,14500085,133,231)
{
Mode=8
Format="H:mm:ss"
Point(Data)
Point(Result)
link(onResult,14868032:doConvert,[])
link(Data,6291880:Text,[])
}
Add(DateConvertor,14868032,182,231)
{
Mode=8
Format="H:mm:ss"
Point(Data)
Point(Result)
link(onResult,1654539:doConvert,[])
link(Data,9563989:Text,[])
}
Add(DateConvertor,1654539,231,231)
{
Mode=8
Format="H:mm:ss"
Point(Data)
Point(Result)
link(onResult,5514823:doOperation,[])
link(Data,15562861:Text,[])
}
Add(MathParse,11532965,175,294)
{
DataCount=4
MathStr="%1 + %2 + %3 + %4"
link(onResult,14731565:doConvert,[])
link(X1,14500085:Result,[(181,285)(139,285)])
link(X2,14868032:Result,[])
link(X3,1654539:Result,[(195,271)(237,271)])
}
Add(DateConvertor,14731565,231,294)
{
Mode=9
Format="H:mm:ss"
Point(Data)
Point(Result)
link(onResult,2977128:doText,[])
}
Add(Time,14977008,280,161)
{
Point(DateTime)
}
Add(Math,5514823,287,231)
{
OpType=37
Op2=1
ResultType=0
link(onResult,11532965:doCalc,[(326,237)(326,335)(165,335)(165,300)])
link(Op1,14977008:DateTime,[])
}


карма: 22

0
Ответов: 8926
Рейтинг: 823
#4: 2015-03-19 16:15:20 ЛС | профиль | цитата
wvlas, небольшой баг в DateConvertor: он начинает правильно считать не с 0-го года, который получается если в ваших ячейках только часы, а с 17хх какого-то, поэтому надо к результату прибавить скажем 700000 дней, а выводить только часы.
code_35354.txt
карма: 19

0
файлы: 1code_35354.txt [2.9KB] [535]
Ответов: 91
Рейтинг: 0
#5: 2015-03-19 17:34:11 ЛС | профиль | цитата
Что спрашивал то и работоспособное получил, немного непоняв. А если ячеек будет 1000?
------------ Дoбавленo в 17.27:
Компонент Math исправляет баг?
------------ Дoбавленo в 17.34:
В поток выдается OnResult. Зачем GetDataExt?
карма: 0

0
Ответов: 8926
Рейтинг: 823
#6: 2015-03-19 18:11:10 ЛС | профиль | цитата
wvlas, вот 1000 (можно и больше) code_35356.txt
Math ничего не исправляет, только суммирует (умножает, делит.....) что задал программист
карма: 19

0
файлы: 1code_35356.txt [1.7KB] [557]
Ответов: 1088
Рейтинг: 112
#7: 2015-03-19 19:14:32 ЛС | профиль | цитата
если сумма более 24 часов:
Add(MainForm,347901,301,378)
{
Width=258
Height=126
link(onCreate,2825213:doEnum,[])
}
Add(Edit,2452177,763,609)
{
Left=75
Top=40
Width=65
ReadOnly=0
}
Add(StrList,610429,364,315)
{
Strings=#6:0:30:1|6:0:30:1|6:0:30:1|6:0:30:1|6:0:30:1|6:0:30:1|
}
Add(ArrayEnum,2825213,378,392)
{
link(onItem,16178759:doSplit,[])
link(onEndEnum,16047436:doData,[(447,405)(447,496)])
link(Array,610429:Array,[])
}
Add(FormatStr,7965583,693,609)
{
DataCount=3
Mask="%1:%2:%3"
link(onFString,2452177:doText,[])
link(Str1,11967145:Result,[(699,565)(580,565)])
link(Str2,15533499:Result,[])
link(Str3,7313585:Result,[(713,590)(755,590)])
}
Add(MathParse,7751253,476,441)
{
DataCount=3
MathStr="%0+(%1*3600 + %2*60+%3)"
link(X1,16178759:Part1,[])
link(X2,16178759:Part2,[])
link(X3,16178759:Part3,[])
}
Add(Math,11967145,574,490)
{
OpType=7
Op2=3600
}
Add(Hub,16200894,532,490)
{
OutCount=3
link(onEvent1,11967145:doOperation,[])
link(onEvent2,5031982:doOperation,[])
link(onEvent3,7965583:doString,[(568,510)(568,615)])
}
Add(Math,5031982,616,497)
{
OpType=8
Op2=3600
link(onResult,11088083:doEvent1,[])
}
Add(Math,15533499,700,497)
{
OpType=7
Op2=60
}
Add(Math,7313585,749,539)
{
OpType=8
Op2=60
}
Add(Hub,11088083,665,497)
{
link(onEvent1,15533499:doOperation,[])
link(onEvent2,7313585:doOperation,[(689,510)(689,545)])
}
Add(MultiStrPart,16178759,476,392)
{
Char=":"
Count=3
link(onSplit,7751253:doCalc,[(520,398)(520,422)(464,422)(464,447)])
}
Add(DoData,16047436,476,490)
{
link(onEventData,16200894:doEvent1,[])
link(Data,7751253:Result,[])
}


карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 16884
Рейтинг: 1239
#8: 2015-03-19 19:26:53 ЛС | профиль | цитата
Леонид писал(а):
небольшой баг в DateConvertor
это не баг.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Гость
Ответов: 17029
Рейтинг: 0
#9: 2015-03-19 20:17:55 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2021-06-24 08:04:20
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#10: 2015-03-19 20:34:26 ЛС | профиль | цитата
Потому, что компонента для работы с временем кроме математики у нас нет.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Гость
Ответов: 17029
Рейтинг: 0
#11: 2015-03-19 20:35:17 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2021-06-24 08:04:20
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#12: 2015-03-19 20:41:40 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2021-06-24 08:04:19
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#13: 2015-03-19 21:03:28 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2021-06-24 08:04:19
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#14: 2015-03-19 21:22:26 ЛС | профиль | цитата
code_35359.txt
но не суммирование
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_35359.txt [564B] [501]
Ответов: 8926
Рейтинг: 823
#15: 2015-03-19 22:03:29 ЛС | профиль | цитата
87.103.208.213 писал(а):
Или добавлять к времени любую дату..
Дата должна быть более 01-01-1601 или 584389 дней code_35360.txt
Tad, code_35361.txt
карма: 19

0
файлы: 2code_35360.txt [1KB] [516], code_35361.txt [561B] [553]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)