function datediff(d1,d2:TDateTime) var a,b,c,i:integer; begin a:=round(d2-d1); //a 为包括星期六、天的天数 b:=a div 7; //b为周数 c:=a mod 7;
a:=a-b*2; for i:=0 to c begin if dayofweek(d1+i)=1 or dayofweek(d1+i)=7 then a:=a-1; end; return a; end;
OK 有办法 var time1:tdatetime;//<----开始时间 var time2:tdatetime;//<----结束时间 var a:integer;//<-----间隔的天数 begin a:=0; time1:=now; time2:=now+5; while (time2-time1)>1 do begin if not (DayOfTheWeek(time1)=6) or (DayOfTheWeek(time1)=7) then a:=a+1; time1:=time1+1; end; end;
不錯, 這種效率不是很好, 但思路但比較清楚!! 如果兩個日期相差不遠, 還是很好的解決方法!!
>>楼上的如何知道每个日期是星期几
用 DayOfTheWeek
var
a,b,c,i:integer;
begin
a:=round(d2-d1); //a 为包括星期六、天的天数
b:=a div 7; //b为周数
c:=a mod 7;
a:=a-b*2;
for i:=0 to c
begin
if dayofweek(d1+i)=1 or dayofweek(d1+i)=7 then
a:=a-1;
end;
return a;
end;
var time1:tdatetime;//<----开始时间
var time2:tdatetime;//<----结束时间
var a:integer;//<-----间隔的天数
begin
a:=0;
time1:=now;
time2:=now+5;
while (time2-time1)>1 do
begin
if not (DayOfTheWeek(time1)=6) or (DayOfTheWeek(time1)=7) then
a:=a+1;
time1:=time1+1;
end;
end;