¿ 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
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Calcular fechas
-
- Mensajes: 136
- Registrado: Jue Jul 05, 2007 4:52 am
Calcular fechas
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
>
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
>
-
- Mensajes: 620
- Registrado: Jue Mar 23, 2006 2:39 am
Calcular fechas
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
>
>
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
>
>
- ignacio
- Site Admin
- Mensajes: 9458
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Calcular fechas
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
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
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com