var
i:integer;
s_d:DateTime;//定义个变量记录上一条记录的结束时间
begin
query1.close;
query1.sql.clear;
query1.sql.add('select * from 你的表 order by 你的开始日期')
query1.open;
query1.first;
i:= i + 计算第一条记录的天数;
s_d := 第一条结束时间
query1.next;
while not query1.eof do
bgein
i := i + 该记录的天数;
if s_d > 该记录的开始时间
bgein
求出该减去的天数
i := i - 该减去的天数
end;
s_d := 该记录的结束时间
query.next;
end;
var
i:integer;
定义个变量记录上一条记录的结束时间 s_d
begin
query1.close;
query1.sql.clear;
query1.sql.add('select * from 你的表 order by 你的开始日期')
query1.open;
query1.first;
i:= i + 计算第一条记录的时间;
s_d := 结束时间
query1.next;
while not query1.eof do
bgein
i := i + 该记录的时间;
if s_d > 该记录的开始时间
bgein
求出该减去的天数
i := i + 该减去的天数
end;
s_d := 结束时间
query.next;
end;
var
l_DateTime_Start,
l_DateTime_End: TDateTime;
l_Int_Days: Integer;
begin
with ADOQuery Do
//首先Odery By StartDate
l_Int_Days := 0;
for i := 0 to Recordcount-1 do
begin
l_DateTime_Start := FieldValues['StartDate'];
l_DataTime_End := FieldValues['EndDate'];
l_Int_Days := l_Int_Days + (l_DateTime_Start - l_DateTime_Start);
Next;
if FieldValues['StartDate'] < l_DataTime_End then
l_Int_Days := l_Int_Days - (l_DataTime_End - StartDate);
end;
end;
End;