Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подсчёт времени. [D6, Paradox]


Widom ©   (2002-10-15 07:09:00) 

Есть два поля Часы и Минуты.
Надо просумировать время что бы получить общее время.
например: 2ч 35мин
1ч 40мин
1ч 25мин
Итог: 5ч 40мин

Подскажите функцию


Sergey13   (2002-10-15 11:18:00) [1]

А может исчо проще? 8-)
select sum(h) as h_coiunt,sum(m) as m_count from....
Потом
часы:=H_count+int(m_count/60)
минуты:=m_count-(60*int(m_count/60))


Johnmen   (2002-10-15 10:10:00) [2]

А может проще ?
SELECT
CAST((SUM(h*60+m)/60)-0.5 AS INTEGER) AS hs,
SUM(m)-60*CAST((SUM(m)/60)-0.5 AS INTEGER) AS ms
FROM ...
WHERE ...


Widom   (2002-10-15 09:58:00) [3]

Всё замечтельно....
но у меня время большое например 26 часов 40 минут.
Т.е у меня програма учет рабочего времени сколь всего часов работатли в месяц.
А он больше 24 не суммирует.


Sirus   (2002-10-15 08:09:00) [4]

Var TotalTime:TTime;
CurrTime:TTime;
Begin
Query1.Open;
Query1.First;
TotalTime:=0;
Repeat
CurTime:=StrToTime(Query1.FieldByName("ЧАСЫ").AsString+":"+Query1.FieldByName("МИНУТЫ").AsString+":00");
TitalTime:=TotalTime+CurrTime;
Query1.Next;
Until Query1.Eof;
ShowMessage(TimeToStr(TotalTime));
End;

Вместо Query1 можешь вставить Table1 или че нить другое
ЧАСЫ и МИНУТЫ это названия полей содержащих часы и минуты.


Widom   (2002-10-15 08:00:00) [5]

Спасибо.
А если у меня много записей в базе ?
У тебя только на две.
обьясните делитанту...


Sirus   (2002-10-15 07:23:00) [6]

Забыл...
Edit1 и Edit3 это часы...
Edit2 и Edit4 это минуты...
Удачи...


Sirus   (2002-10-15 07:22:00) [7]

procedure TForm1.Button1Click(Sender: TObject);
var t1,t2:ttime;
begin
t1:=StrToTime(Edit1.Text+":"+Edit2.Text+":00");
t2:=StrToTime(Edit3.Text+":"+Edit4.Text+":00");
ShowMessage(TimeToStr(t1+t2));
end;

Вместо компонент TEdit вставишь свои поля...
Должно работать...


Наверх

Титульная страница Поиск, карта сайта Написать письмо