Página 1 de 1

Calcular fechas

Publicado: Dom Jul 15, 2007 6:03 am
por PEDRO DE LEON RODAS[1]
¿ Como puedo hacer para calcular una fecha por medio de los meses ?
Ejemplo:
tengo una variable de memeria con la fecha actual y quiero
calcular una proxima fecha pero introduciento cierta cantidad de meses:
var_meses=15
var_fecha_actual=ctod("14/07/2007")
var_fecha_proxima= var_fecha_actual +15
en Foxpro lo hacia de la siguiente manera:
var_fecha_proxima=
GOMONTH(var_fecha_actual,+var_meses)
el resultado
que me da es: 14/10/2008
¿ En xailer como lo hago ?
!!!!!!!! ES URGENTE TODA AYUDA !!!!!!!!!!!!!
Gracias

Calcular fechas

Publicado: Dom Jul 15, 2007 6:50 pm
por Rolando
Pedro:
FUNC ADIMES( dFecha, nCant )
LOCAL nAno := YEAR(dFecha),;
nMes := MONTH( dFecha ),;
nHoy := DAY( dFecha )
FOR M_A := 1 TO nCant
nMes ++
IF nMes = 13
nMes = 1
nAno ++
END
NEXT
nHoy :=
IIF(nMes=2.AND.(nHoy=29.OR.nHoy=30.OR.nHoy=31),IIF((nAno%4)# 0,28,29),nHoy)
nHoy := IIF(nHoy=31.AND.(nMes=4.OR.nMes=6.OR.nMes=9.OR.nMes=11),30,n Hoy)
RETURN(CTOD(STR(nHoy,2,0)+"/"+STR(nMes,2,0)+"/"+STR(nAno,4,0)))
var_fecha_actual=ctod("14/07/2007")
var_fecha_proxima= ADIMES(var_fecha_actual, 15)
Saludos
"PEDRO DE LEON RODAS" <deleonpe@terra.com.mx> escribió en el mensaje
news:[email=46999ca2@ozsrv2.ozlan.local...]46999ca2@ozsrv2.ozlan.local...[/email]
>¿ Como puedo hacer para calcular una fecha por medio de los meses ?
>
> Ejemplo:
> tengo una variable de memeria con la fecha actual y quiero
> calcular una proxima fecha pero introduciento cierta cantidad de meses:
> var_meses=15
> var_fecha_actual=ctod("14/07/2007")
> var_fecha_proxima= var_fecha_actual +15
>
>
> en Foxpro lo hacia de la siguiente manera:
>
> var_fecha_proxima= GOMONTH(var_fecha_actual,+var_meses)
>
> el
> resultado que me da es: 14/10/2008
>
>
> ¿ En xailer como lo hago ?
>
>
> !!!!!!!! ES URGENTE TODA AYUDA !!!!!!!!!!!!!
>
> Gracias
>

Calcular fechas

Publicado: Lun Jul 16, 2007 5:06 am
por Rene Flores
PEDRO:
Muy sencillo, en Clipper solo sumale el numero de dias que quieras aumentar:
dFecha := DATE()+(var_meses*30)
si var_meses es 15, va a multiplicar esto por 30 y será 450, que sumados
a la fecha actual, te dará un aproximado bastante exacto a la fecha
que quieres, obviamente los meses no todos tiene 30 dias, pero el resto
es facil.
Al vuelo he hecho esto, faltaria pulirlo
Function SumaMeses(dFecha,nMeses)
LOCAL cFecha
DEFAULT dFecha TO DATE()
DEFAULT nMeses TO 0
cFecha := SUBSTR(DTOS(dFecha+(nMeses*30)),1,6)+ALLTRIM(STR(DAY(dFecha) ))
RETURN (STOD(cFecha))
Saludos
Rene Flores
http://www.ciber-tec.com
DE LEON RODAS escribió:
> ¿ Como puedo hacer para calcular una fecha por medio de los meses ?
>
> Ejemplo:
> tengo una variable de memeria con la fecha actual y quiero
> calcular una proxima fecha pero introduciento cierta cantidad de meses:
> var_meses=15
> var_fecha_actual=ctod("14/07/2007")
> var_fecha_proxima= var_fecha_actual +15
>
>
> en Foxpro lo hacia de la siguiente manera:
> var_fecha_proxima=
> GOMONTH(var_fecha_actual,+var_meses)
>
> el resultado
> que me da es: 14/10/2008
>
>
> ¿ En xailer como lo hago ?
>
>
> !!!!!!!! ES URGENTE TODA AYUDA !!!!!!!!!!!!!
>
> Gracias
>
>

Calcular fechas

Publicado: Lun Jul 16, 2007 11:18 am
por ignacio
Pedro,
A continuación dejo una función propia que te permite sumar meses naturales.
Por ejemplo contempla sumar 30 días al 31 de enero, y te devuelve 28 o 29 de
febrero (si es bisiesto)
Un saludo,
FUNCTION SumDias( dFecha, nDias )
LOCAL nMeses, nMes, nPer, nDia, nDesp, nLastDay
nMeses := Int( nDias / 30 )
nDesp := nDias - ( nMeses * 30 )
nDia := Day( dFecha )
IF Month( dFecha ) + nMeses > 12
nMes := Month( dFecha ) + nMeses - 12
nPer := Year( dFecha ) + 1
ELSE
nMes := Month( dFecha ) + nMeses
nPer := Year( dFecha )
ENDIF
dFecha := CtoD( "01-" + Str( nMes, 2 ) +"-"+ Substr( str( nPer, 4 ),
3, 2 ) )
nLastDay := LastDay( dFecha )
nDia := Min( nDia, nLastDay )
dFecha := CtoD( Str( nDia,2 ) + "-" +;
Str( nMes,2 ) + "-" +;
Substr( Str( nPer, 4 ), 3, 2 ) ) + nDesp
RETURN dFecha
"Rene Flores" <"rflores[nospam]"@ciber-tec.com> escribió en el mensaje
news:[email=469ae07d@ozsrv2.ozlan.local...]469ae07d@ozsrv2.ozlan.local...[/email]
> PEDRO:
>
> Muy sencillo, en Clipper solo sumale el numero de dias que quieras
> aumentar:
>
> dFecha := DATE()+(var_meses*30)
>
> si var_meses es 15, va a multiplicar esto por 30 y será 450, que sumados a
> la fecha actual, te dará un aproximado bastante exacto a la fecha que
> quieres, obviamente los meses no todos tiene 30 dias, pero el resto es
> facil.
>
> Al vuelo he hecho esto, faltaria pulirlo
>
> Function SumaMeses(dFecha,nMeses)
> LOCAL cFecha
> DEFAULT dFecha TO DATE()
> DEFAULT nMeses TO 0
> cFecha := SUBSTR(DTOS(dFecha+(nMeses*30)),1,6)+ALLTRIM(STR(DAY(dFecha) ))
> RETURN (STOD(cFecha))
>
> Saludos
>
> Rene Flores
> http://www.ciber-tec.com
>
>
>
> DE LEON RODAS escribió:
>> ¿ Como puedo hacer para calcular una fecha por medio de los meses ?
>>
>> Ejemplo:
>> tengo una variable de memeria con la fecha actual y
>> quiero calcular una proxima fecha pero introduciento cierta cantidad de
>> meses:
>> var_meses=15
>> var_fecha_actual=ctod("14/07/2007")
>> var_fecha_proxima= var_fecha_actual +15
>>
>>
>> en Foxpro lo hacia de la siguiente manera:
>>
>> var_fecha_proxima= GOMONTH(var_fecha_actual,+var_meses)
>>
>> el
>> resultado que me da es: 14/10/2008
>>
>>
>> ¿ En xailer como lo hago ?
>>
>>
>> !!!!!!!! ES URGENTE TODA AYUDA !!!!!!!!!!!!!
>>
>> Gracias