30 de mayo de 2006

Fecha comercial basada en días

La función lo que hace es tomar una fecha y con base a ella calcula los días comerciales.

Esta función la llamo masd30 y funciona de la siguiente forma:
? masd30(DATE(2006,03,01),60)
El código es el siguiente :
FUNCTION masd30()
  PARAMETER _DIA,_dias
  SET CENTURY ON
  SET DATE TO DMY
  dia=_DIA
  dias=_dias
  v=30-DAY(dia)+1
  v2=dias-v
  v3=v2/30
  IF v2 = 0
    v4=30
  ELSE
    v4=MOD(v2,30)
  ENDIF
  v3=CEILING (v3)
  vf=GOMONTH(dia,v3)
  vf1=ALLTRIM(STR(v4))+"/"+PADL(ALLTRIM(STR(MONTH(vf))),2,"0")+"/"+ALLTRIM(STR(YEAR(vf)))
  vf2=CTOD(vf1)
  IF EMPTY(vf2)
    vf2="01/"+PADL(ALLTRIM(STR(MONTH(vf)+1)),2,"0")+"/"+ALLTRIM(STR(YEAR(vf)))
    vf2 = CTOD(vf2)
    vf2 = vf2 - 1
  ENDIF
  RETURN vf2
ENDFUN
Nelson Cortés

No hay comentarios. :

Publicar un comentario