Página 1 de 1

ENTREFECHAS

Publicado: Jue Dic 28, 2006 11:45 am
por PILO
Hay alguna funcion que me de los dias, meses y años entre dos fechas
dadas en Xailer o alguien conoce alguna o como se puede hacer
Muchas Gracias

ENTREFECHAS

Publicado: Jue Dic 28, 2006 12:59 pm
por alcisoft
Pilo,
xHarbour tiene en sus fuentes las nanfor lib. Las nanfor lib tienen algunas
funciones sobre fechas a nivel de codigo .prg que seguro que hay alguna que
hace eso.... no se de cabeza me acuerdo de FT_Elapsed()
Saludos
PILO escribió en mensaje <4593a055@news.xailer.com>...
>Hay alguna funcion que me de los dias, meses y años entre dos fechas
>dadas en Xailer o alguien conoce alguna o como se puede hacer
>Muchas Gracias
>
>

ENTREFECHAS

Publicado: Jue Dic 28, 2006 1:36 pm
por Rolando
Pilo:
Esta funcion te devuelven un string con años, meses y dias como para
poner una edad.
Saludos.
FUNCT PONS_EDAD( dFechaIni, dFechaFin )
LOCAL dsmsas, cResp := "", cAnos, cMeses, cDias
if ! empty(dFechaIni)
IIF( dFechaFin == NIL, dFechaFin := DATE(), )
dsmsas = DDMMAA( dFechaFin, dFechaIni )
cAnos := SUBSTR( dsmsas, 5, 3 )
cMeses := SUBSTR( dsmsas, 3, 2 )
cDias := SUBSTR( dsmsas, 1, 2 )
cResp := alltrim( cAnos ) + IIF( VAL(cAnos)==1, " Año, ", " Años, " )
+;
cMeses + IIF( VAL(cMeses)==1, " Mes y ", " Meses y " ) +;
cDias + IIF( VAL(cDias)==1, " Día", " Días" )
endif
RETURN( cResp )
//---------------------------------------------------------- --------------------
STATIC FUNCTION DDMMAA( dFechaFin, dFechaIni )
LOCAL nDifDia, nDifMes, nDifAno, nCantDiaMesAnt, nAno, nMes
//
// Devuelve la diferencia de años meses y dias de Las fechas pasadas
// como parámetros, en un string de 6 posiciones con formato ddmmaa
// dFechaFin - dFechaIniF1
// En el prg se deben sustraer cada uno de ellos....
//
nMes = MONTH( dFechaFin ) - 1
nAno = YEAR( dFechaFin )
nCantDiaMesAnt = IIF( nMes=2, IIF( nAno%4 # 0, 28, 29 ),IIF( nMes=4 .OR.;
nMes=6 .OR. nMes=9 .OR. nMes=11, 30, 31 ) )
nDifDia = DAY( dFechaFin ) - DAY( dFechaIni )
nDifMes = MONTH( dFechaFin ) - MONTH( dFechaIni )
nDifAno = YEAR( dFechaFin ) - YEAR( dFechaIni )
IF nDifMes < 0
nDifAno = nDifAno - 1
nDifMes = MONTH( dFechaFin ) + 12 - MONTH( dFechaIni )
ENDIF
IF nDifDia < 0
IF nDifMes <= 0
nDifMes += 11
nDifAno -= 1
ElSE
nDifMes -= 1
ENDIF
nDifDia = DAY( dFechaFin ) + nCantDiaMesAnt - DAY( dFechaIni )
ENDIF
RETURN( STR( nDifDia, 2 ) + STR( nDifMes, 2 ) + STR( nDifAno, 3 ) )
"PILO" <srmpilo@hotmail.com> escribió en el mensaje
news:[email=4593a055@news.xailer.com...]4593a055@news.xailer.com...[/email]
> Hay alguna funcion que me de los dias, meses y años entre dos fechas
> dadas en Xailer o alguien conoce alguna o como se puede hacer
> Muchas Gracias
>

ENTREFECHAS

Publicado: Sab Ene 06, 2007 3:42 pm
por Rolando
Pilo:
no era lo que buscabas ?
"Rolando Sarrailh" <rsarrailh@gmail.com> escribió en el mensaje
news:[email=4593ba72@news.xailer.com...]4593ba72@news.xailer.com...[/email]
> Pilo:
> Esta funcion te devuelven un string con años, meses y dias como para
> poner una edad.
> Saludos.
>
> FUNCT PONS_EDAD( dFechaIni, dFechaFin )
> LOCAL dsmsas, cResp := "", cAnos, cMeses, cDias
> if ! empty(dFechaIni)
> IIF( dFechaFin == NIL, dFechaFin := DATE(), )
> dsmsas = DDMMAA( dFechaFin, dFechaIni )
> cAnos := SUBSTR( dsmsas, 5, 3 )
> cMeses := SUBSTR( dsmsas, 3, 2 )
> cDias := SUBSTR( dsmsas, 1, 2 )
>
> cResp := alltrim( cAnos ) + IIF( VAL(cAnos)==1, " Año, ", " Años, " )
> +;
> cMeses + IIF( VAL(cMeses)==1, " Mes y ", " Meses y " ) +;
> cDias + IIF( VAL(cDias)==1, " Día", " Días" )
> endif
> RETURN( cResp )
>
> //---------------------------------------------------------- --------------------
>
> STATIC FUNCTION DDMMAA( dFechaFin, dFechaIni )
> LOCAL nDifDia, nDifMes, nDifAno, nCantDiaMesAnt, nAno, nMes
>
> //
> // Devuelve la diferencia de años meses y dias de Las fechas pasadas
> // como parámetros, en un string de 6 posiciones con formato ddmmaa
> // dFechaFin - dFechaIniF1
> // En el prg se deben sustraer cada uno de ellos....
> //
> nMes = MONTH( dFechaFin ) - 1
> nAno = YEAR( dFechaFin )
> nCantDiaMesAnt = IIF( nMes=2, IIF( nAno%4 # 0, 28, 29 ),IIF( nMes=4 .OR.;
> nMes=6 .OR. nMes=9 .OR. nMes=11, 30, 31 ) )
> nDifDia = DAY( dFechaFin ) - DAY( dFechaIni )
> nDifMes = MONTH( dFechaFin ) - MONTH( dFechaIni )
> nDifAno = YEAR( dFechaFin ) - YEAR( dFechaIni )
>
> IF nDifMes < 0
> nDifAno = nDifAno - 1
> nDifMes = MONTH( dFechaFin ) + 12 - MONTH( dFechaIni )
> ENDIF
>
> IF nDifDia < 0
> IF nDifMes <= 0
> nDifMes += 11
> nDifAno -= 1
> ElSE
> nDifMes -= 1
> ENDIF
> nDifDia = DAY( dFechaFin ) + nCantDiaMesAnt - DAY( dFechaIni )
> ENDIF
> RETURN( STR( nDifDia, 2 ) + STR( nDifMes, 2 ) + STR( nDifAno, 3 ) )
>
> "PILO" <srmpilo@hotmail.com> escribió en el mensaje
> news:[email=4593a055@news.xailer.com...]4593a055@news.xailer.com...[/email]
>> Hay alguna funcion que me de los dias, meses y años entre dos fechas
>> dadas en Xailer o alguien conoce alguna o como se puede hacer
>> Muchas Gracias
>>
>
>

ENTREFECHAS

Publicado: Sab Ene 06, 2007 11:34 pm
por PILO
Perdona, con lo que me has mandado y lo e tuilizado pero solo con los dias
Se me olvido responderte, Gracias y Feliz 2007