無名经验总结与分享(SAP)            十年树木,百年树人

求两个日期之间工作日的天数(除去星期六星期天)

function DayOfWeekCount(ADayOfWeek: Integer; const ABegin, AEnd: TDateTime): Integer;
 var   lBeginDay, lEndDay: Integer;
begin
   lBeginDay := DayOfTheWeek(ABegin);
   lEndDay := DateUtils.DayOfTheWeek(AEnd);
   Result := (DateUtils.DaysBetween(ABegin, AEnd) + 1 + (lBeginDay - 1) + (7 - lEndDay)) div 7;
   if lBeginDay > ADayOfWeek then
      Result := Result - 1;
   if lEndDay < ADayOfWeek then
      Result := Result - 1;
end;

function GetWorkDays(ABeginTime, AFinishTime: TDateTime): Integer;
begin
  Result := DateUtils.DaysBetween(ABeginTime, AFinishTime) + 1;
     { 除去周六周日 }
  Result := Result -
         DayOfWeekCount(DateUtils.DaySaturday, ABeginTime, AFinishTime) -
         DayOfWeekCount(DateUtils.DaySunday, ABeginTime, AFinishTime);
end;

posted @ 2012-11-15 09:18  無名  阅读(300)  评论(0编辑  收藏  举报
Twttafku@163.com
十年树木,百年树人