Tiene una tabla para capturar los días festivos, si no captura información en esta tabla la función tendrá un error de calculo por tal razón hay que tener esta tabla con datos correctos y actuales y tener un campo índice principal de fecha.
FUNCTION diashab(fecha1,fecha2) LOCAL num AS INTEGER * validando entrada de fechas IF (!EMPTY(EVALUATE('fecha1'))) AND (!EMPTY(EVALUATE('fecha2'))) * validando fechas IF fecha1 < fecha2 * numero de dias habilies num=0 * dias entre 2 fechas dias=(fecha2-fecha1)+1 * para sumar un dia a la fecha inicial feccom=fecha1 * habre la tabla con las fechas de dias festivos (libres) IF !USED('diainabil') rut_nom=LOCFILE('diainabil','dbf') USE &rut_nom ALIAS diainabil IN 0 ORDER fechaini ENDIF SELECT diainabil * contando los dias habiles FOR i=1 TO dias * contando sin incluir a sabados y domingos IF !INLIST(DOW(feccom),1,7) num=num+1 ENDIF * restando las fechas de dias libres entre semana. IF SEEK(feccom) AND INLIST(DOW(feccom),2,3,4,5,6) num=num-1 ENDIF *incrementa la fecha feccom=feccom+1 ENDFOR * retorna el numero de dias habiles entre esas fechas USE IN diainabil RETURN num ELSE * eror en fecha RETURN .F. ENDIF ELSE * error en tipo de datos RETURN .F. ENDIF ENDFUNC
Emmanuel Nuñez Sanchez
¿Cuál es la estructura de la tabla de los días festivos?
ResponderBorrar