31 de mayo de 2006

Días comerciales entre dos fechas calendario

Esta función se llama menosd30 y la hice para calcular los días comerciales entre dos fechas.

Funciona de la siguiente manera:
? menosd30(DATE(2006,1,1), DATE(2006,12,31))
El código es el siguiente.
FUNCTION menosd30()
  PARAMETER _fi,_ff
  SET CENTURY ON
  SET DATE TO DMY
  fi=_fi
  ff=_ff
  mi=MONTH(fi)
  mf=MONTH(ff)
  di=DAY(fi)
  df=DAY(ff)
  yi=YEAR(fi)
  yf=YEAR(ff)
  xm=mf-mi
  IF di > 30 AND df > 30
    di = 30
  ENDIF
  IF df > 30
    df = 30
  ELSE
    IF MONTH(ff + 1) > MONTH(ff)
      df = 30
    ENDIF
  ENDIF
  xd=df-di+1
  xy=yf-yi
  xf=xm*30+xd+(xy*360)
  RETURN xf
ENDFUN
Nelson Cortés

No hay comentarios. :

Publicar un comentario