Page 1 of 1
Obtener el dia utimo de cada mes
Posted: Fri Apr 07, 2017 10:39 pm
by jorge.posadas
Grupo
¿Existe alguna función donde , pasando una fecha "X" me regrese la fecha final del mes de la fecha "X"?
Ejemplo : Si mi fecha inicial es 13/02/2017, entonces debo de obtener 28/02/2017 o 29/02/2017, o si mi fecha inicial es 3/04/2017 entonces debo obtener 30/04/2017,
No he encontrado nada en HARBOUR para tal efecto,
Mucho agradeceré la ayuda
Re: Obtener el dia utimo de cada mes
Posted: Fri Apr 07, 2017 10:49 pm
by Pablo César
Existe esa funcion. Es la función
EOM() igual al del Clipper (pertence a la hbct lib)
https://harbour.github.io/doc/hbct.html#eom
Si quieres ver como es la lógica en la practica podrias hacer asi:
SET CENTURY ON
SET DATE TO BRITISH
dFecha_Ini:=CTodD("13/02/2017")
dUltimo_Dia_Mes:=CTodD("01/"+(Month(dFecha_Ini)+1)+"/"+Year(dFecha_Ini))-1 // Sustrae 1 dia del primero dia del mes siguiente.

Re: Obtener el dia utimo de cada mes
Posted: Fri Apr 07, 2017 11:03 pm
by apais
eso puede generar un mes 13
esta funcion me funciona a mi
FUNCTION EOM(dDate)
IF dDate = NIL
dDate := DATE()
ENDIF
dDate += ( 45 - day( dDate ) )
RETURN dDate - day( dDate )
Re: Obtener el dia utimo de cada mes
Posted: Fri Apr 07, 2017 11:12 pm
by Pablo César
Ahhh si tenés razón. Gracias Angel.
Code: Select all
SET CENTURY ON
SET DATE TO BRITISH
dFecha_Ini:=CTodD("13/02/2017")
dMes:=Month(dFecha_Ini)
dUltimo_Dia_Mes:=CTodD("01/"+If(dMes=12,1,dMes+1)+"/"+If(dMes=12,Year(dFecha_Ini)+1,Year(dFecha_Ini)))-1 // Sustrae 1 dia del primero dia del mes siguiente.
Si bien que con EOM ya resuelve el caso.
Tu funcion tambien debe funcionar bien.