function TmainForm.WorksDay( //计算两个日期间有多少个工作日
mStartDate: TDate; //开始日期
mEndDate: TDate //终止日期
): Integer; //返回两个日期间的工作日,如果输入错误则返回-1
var m,n:integer;
begin
Result := -1;
if mEndDate < mStartDate then Exit;
m:=DaysBetween(mStartDate,mEndDate);
n:=(m div 7)*2;
if m mod 7<>0 then
begin
if DayOfWeek(mStartDate)>DayOfWeek(mEndDate) then n:=n+2;
if DayOfWeek(mStartDate)=1 then n:=n+1;
if DayOfWeek(mEndDate)=1 then n:=n-1;
end;
result:=m-n;
end;[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11218608/viewspace-1011005/
,如需转载,请注明出处,否则将追究法律责任。