extrar fechas
Publicado por nicolas reyes (2 intervenciones) el 14/01/2013 13:01:01
extrar de una fecha el dia y mes para hacer un listado de cumpleaños en visual fox pro
Valora esta pregunta


0
*******************************
PROCEDURE Findemes(xnMes,xnAno)
*******************************
* Devuelve el último día
* de un mes cualquiera (fecha D)
*******************************
LOCAL Bi,lBisiesto,ldLast,nMid
IF EMPTY(xnMes)
xnMes=MONTH(DATE())
ENDIF
IF EMPTY(xnAno)
xnAno=YEAR(DATE())
endif
if Vartype(xnMes)="C"
xnMes=val(xnMes)
endif
if xnMes=0
xnMes=month(date())
endif
if vartype(xnAno)="C"
xnAno=Val(xnAno)
endif
if xnAno=0
xnAno=year(date())
ENDIF
lBisiesto=IIF(xnAno=2000,.t.,iif(Mod(xnAno,4)=0,iif(Mod(xnAno,25)=0,.f.,.t.),.f.))
DO case
CASE xnMes=2
ldLast=IIF(lBisiesto,29,28)
CASE INLIST(xnMes,1,3,5,7,8,10,12)
ldLast=31
OTHERWISE
ldLast=30
ENDCASE
RETURN DATE(xnAno,xnMes,ldLast)
ENDPROC
FUNCTION Findemes
LPARAMETERS xnMes as int, xnAnho as int
local xx as date
IF VARTYPE(xnMes)#"N".or.Empty(xnMes)
xnMes=MONTH(DATE())
ENDIF
IF VARTYPE(xnAnho)#"N".or.Empty(xnAnho).or.xnAnho<1753
xnAnho=YEAR(DATE())
ENDIF
xnMes=xnMes+1
IF xnMes>12
xnMes=1
xnAnho=xnAnho+1
endif
xx= DATE( xnAnho, xnMes, 1)
RETURN GOMONTH(xx-DAY(xx),0)