La Web del Programador: Comunidad de Programadores
 
    Pregunta:  13651 - AUMENTAR MESES EN UNA FECHA
Autor:  mauricio lavilla
Amigos programadores , tengo un problema con un procedimiento de fechas, lo que quiero hacer es muy simple pero no me doy cuenta de cómo hacerlo, paso a explicarles:
Lo que quiero es sumar (por ej. 1 meses) a una determinada fecha que tengo dentro de un registro.
Supongamos que la variable fecha_ini = 01/01/2001
Sumando dos meses tendría que quedar en 01/02/2001. (tengo que sumar meses no dias)
Si es que se puede agradeceria su ayuda.
Saludos.

  Respuesta:  JOSE ROLANDO QUINTERO PAZ
Hola
Esta vez quise almpliar mi respuesta anterior que de todos modos no era la correcta. Ahora espero que esta te sirva.
Para realizar un contador de meses debes escribir lo siguiente:

Fecha=MONTH(DATE())
IF FECHA>=3 "Este numero equivale al mes de Marzo"
"Aqui tienes que escribir el mensaje"
ENDIF

Aunque tambien puedes hacer que sume tanto los dias, los meses como asi tambien los años:

Var1=DAY(DATE())
Var2=MONT(DATE())
Var3=YEAR(DATE())

En este caso las variables hacen referencia al Dia, Mes y Año actual, pero, tambien podrias poner por ej. en Var1=1, Var2=2, Var3=2000;
es decir, 01/02/2000.

Si tienes dudas preguntame, ok?

  Respuesta:  JOSE ROLANDO QUINTERO PAZ
Hola
En ese caso tienes que usar la variable de mes que no recuerdo muy bien como es pero puede ser cMonth o algo asi. Debes saber que los formatos de fechas tienen variables tanto para dia,mes y año, y pueden ser numericos o de tipo caracter.
La sentencias seria algo asi:
fecha_ini=01/01/2001
fecha_ini=fecha_ini+1
IF DATE()>=fecha_ini
"Aqui debes escribir el mensaje o una funcion que quieras ejecutar"
QUIT
ENDIF

Espero que te sirva de ayuda y me escribas

  Respuesta:  Douglas Cruz Coto Alvarenga
Mauricio, para resolver tu problema auxiliate de la funcion gomonth() del mismo fox, por ejemplo.

fecha_ini = 01/01/2001, para sumar dos meses seria..
fecha_ini = gomonth(fecha_ini,2) dando el resultado 01/03/2001

si quieres restar solo dale el parametro en negativo
gomonth(fecha_ini,-2)

  Respuesta:  wences
Si puedes trabajar con campos fecha y operar con ellos , el truco consiste en transformar a caracteres con dtoc y ctod , month , year ...ejemplo:

m.nomes=str(month(fecha1),2,0)
m.nomes=padl(alltrim(m.nomes),2,'0')
m.nomes=m.nomes+str(year(fecha1),4,0)
m.nomes='hs'+alltrim(m.nomes)
m.nombre2='.\historia\'+alltrim(m.nomes)

aqui se trabaja con una fecha y se saca un nombre con mes y año para una nueva tabla ( nombre del destino) ...evidentemente si puede sacar el mes de una fecha lo podre sumar y volver a poner ... otro ejemplo:

m.nomes=str(month(date())-1,2,0)
m.nomes=padl(alltrim(m.nomes),2,'0')
if val(m.nomes)=0
m.nomes='12'+str(year(date())-1,4,0)
else
m.nomes=m.nomes+str(year(date()),4,0)
endif
m.nomes='fa'+alltrim(m.nomes)
m.nombre2='.\historia\'+alltrim(m.nomes)

como ves se resta uno al mes de la fecha y se trabaja con ella ...

Espero te sirva ...