某商店要统计哪些顾客在0:10-08:00之间在该商店购买了商品,只知道顾客进商店与结帐出商店地时间。
如:
顾客 进商店的时间 记帐时间 是否符合
----------------------------------------------
顾客1 00:15 02:00 符合
顾客2 00:09 01:00 符合
顾客3 08:01 09:00 不符合
顾客4 09:00 10:00 不符合
顾客n HH:MM HH:MM ???
如:
顾客 进商店的时间 记帐时间 是否符合
----------------------------------------------
顾客1 00:15 02:00 符合
顾客2 00:09 01:00 符合
顾客3 08:01 09:00 不符合
顾客4 09:00 10:00 不符合
顾客n HH:MM HH:MM ???
转换为分钟计算~
Time := HH * 60 + MM;
然后对比~
0:10就是10
8:00就是480
Time在10和480之间的就满足要求~
Time在10和480之间的就满足要求~
--那么如果某个顾客 00:09进店,08:01结帐,是否表示该顾客不满足要求??
貌似没有必要逐条筛选的~
先排序~
如果HH和MM是分开存储的~
可以先检索到HH=8的~
再看这一条记录的MM是不是刚好等于0~
如果不是~
这一条的上面一条就是满足要求的~
呵呵,我转换为秒运算的。
再与规定的时间比较就行了
const n=3;
var m1,m2:array[1..n]of TTime;
t1,t2:TTime;
i:integer;
begin
t1:=StrToTime('0:10');t2:=StrToTime('08:00');
m1[1]:=StrToTime('00:15');m2[1]:=StrToTime('02:00');
m1[2]:=StrToTime('00:09');m2[2]:=StrToTime('01:00');
m1[3]:=StrToTime('08:01');m2[3]:=StrToTime('09:00');
for i:=1 to n do
if (m1[i]>t1)and(m2[i]<t2) then ShowMessage('符合')
else ShowMessage('不符合')
end;
cast( '2005-10-1 ' + '结帐时间')
and cast( '2005-10-1 ' + '结帐时间')<=
cast( '2005-10-1 08:10 ' as datetime)