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