IF NOT (VARTYPE(m.tdFrom)="D" AND VARTYPE(m.toDo)="D") RETURN .F. ENDIF>Shouldn't the second line have OR instead of AND?
LPARAMETERS tdFrom, tdTo >>IF VARTYPE(m.tdFrom)#"D" AND VARTYPE(m.tdTo)#"D" >> RETURN .F. >>ENDIF >>LOCAL lnDays >>lnDays = ABS(m.tdFrom - m.tdTo) + 1 >>RETURN m.lnDays - INT(m.lnDays / 7) * 2 - ; >> IIF(DOW(MIN(m.tdFrom,m.tdTo),2) = 7, SIGN(m.lnDays % 7), SIGN(DOW(MIN(m.tdFrom,m.tdTo),2) - 7 + (m.lnDays % 7)) + 1)>>
LPARAMETERS tdFrom, tdTo, tnLocale >>IF VARTYPE(m.tdFrom)#"D" AND VARTYPE(m.tdTo)#"D" >> RETURN .F. >>ENDIF >>IF NOT FILE("HOLIDAYS.DBF") >> RETURN .F. >>ENDIF >>IF RECCOUNT("HOLIDAYS")=0 >> RETURN 0 >>ENDIF >>LOCAL lnHolidays >>LOCAL ARRAY laHolidays[1] >>IF VARTYPE(m.tnLocale)="N" >> SELECT COUNT(*) ; >> FROM HOLIDAYS ; >> WHERE nLocale = m.tnLocale ; >> AND dHoliday BETWEEN m.tdFrom AND m.tdTo ; >> INTO ARRAY laHolidays >> ELSE >> SELECT COUNT(*) ; >> FROM HOLIDAYS ; >> WHERE dHoliday BETWEEN m.tdFrom AND m.tdTo ; >> INTO ARRAY laHolidays >>ENDIF >>RETURN laHolidays[1]>>
LPARAMETERS tdFrom, tdTo >>IF VARTYPE(m.tdFrom)#"D" AND VARTYPE(m.tdTo)#"D" >> RETURN .F. >>ENDIF >>RETURN WEEKDAYS(m.tdFrom, m.tdTo) ; >> - HOLIDAYS(m.tdFrom, m.tdTo,1)>>