>LPARAMETERS dDate1, dDate2 >LOCAL LD, hd >LD = MIN(dDATE1,dDATE2) >hd = MAX(dDATE1,dDATE2) >return((WEEK(hd,0,2) - WEEK(ld,0,2)) *5) + ; > IIF(DOW(ld,2) < 6,6-DOW(ld,2),0) + ; > IIF(DOW(hd,2) < 6,DOW(hd,2)-5,0) >>
lparameters td1, td2, tnWorkDaysInWeek * First day of workday is Monday - 2 Local lnDays If td2 < td1 Local ldTemp ldTemp = td1 td1 = td2 td2 = ldTemp endif tnWorkDaysInWeek = iif(empty(tnWorkDaysInWeek),5,tnWorkDaysInWeek) lnFullWeeks = floor((td2-td1)/7) td1 = td1+lnFullWeeks*7 If Dow(td1,2) > tnWorkDaysInWeek and Dow(td2,2) > tnWorkDaysInWeek td1 = td1 + Abs(Dow(td1,2)-Dow(td2,2)) endif lnAdd = Iif( Dow(td1,2) > tnWorkDaysInWeek, 0, 1 ) lnDays = Iif( Dow(td1,2) > Dow(td2,2), ; 7 - lnAdd - Dow(td1,2) + Dow(td2,2), ; lnAdd + Min(Dow(td2,2),tnWorkDaysInWeek) ; - Min(Dow(td1,2),tnWorkDaysInWeek) ) return lnFullweeks * tnWorkDaysInWeek + lnDaysCetin