Народ нужна помощь!!
У меня на форме есть DBGridEh1 (в нем есть два столбца - дата/время), Еdit1, Edit2, DateTimePicker1 и DateTimePicker2
написал такую функцию, которая вычисляет разницу двух дат:
Код:
function DataBetween(First,Second: TDateTime): string;
var Y1,Y2,D1,D2,M1,M2,y,m,d: word;
begin
Result:= '';
if First>Second then exit;
y1:=YearOf(First);
y2:=YearOf(Second);
m1:=MonthOf(First);
m2:=MonthOf(Second);
d1:=DayOf(First);
d2:=DayOf(Second);
if d1<=d2 then d:=d2-d1
else begin
d2:=DaysInAMonth(y2,m2)+d2;
m2:=m2-1;
d:=d2-d1;
end;
if m1<=m2 then m:=m2-m1
else begin
m2:=m2+12;
y2:=y2-1;
m:=m2-m1;
end;
y:=y2-y1;
Result:= format('%d год %d месяц %d день',[y,m,d]);
if y=0 then Result:=format('%d месяц %d день',[m,d]);
if m=0 then Result:=format('%d месяц %d день',[y,d]);
if (y=0) and (m=0) then Result:=format('%d день',[d]);
end;
Через обработчика OnClick кнопки Button1 результат вставляю в Edit1. Вот такая команда:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
For i:=0 to Form1.adotable1.RecordCount do begin
If Form1.ADOTable1.FieldByName('aaa').AsBoolean = true then
begin
Form1.DateTimePicker2.Date:=Form1.ADOTable1.FieldByName('ayaktau_kuni').AsDateTime;
Form1.DateTimePicker1.Date:=Form1.ADOTable1.FieldByName('bastau_kuni').AsDateTime;
Form1.Edit1.Text:=DataBetween(Form1.datetimepicker2.date,Form1.datetimepicker1.date);
end;
end;
end;
Admin: Пользуемся тегами!
Теперь мне надо сделать так, чтобы результаты между собой суммировались, это зависит от того, сколько у DBGridEh строк
надо поставить результат в Edit2
Например:
1 год 11 месяцев 25 дней (Edit1) + 2 года 5 месяцев 12 дней (Edit2) = 4 года 5 месяцев 6 дней (Edit2)
Заранее буду благодарен!!!