Clarion - Sumer mes a una fecha

 
Vista:

Sumer mes a una fecha

Publicado por Pedro (59 intervenciones) el 18/05/2011 21:39:06
Hola

Hay una cosa que no puedo encontrar, ni en el help ni en internet,
Como sumarle meses a una fecha, pero no sumando 60 directamente, sino sumarle 2 meses
Si tengo el 28-02-2011 me deberia quedar 28-04-2011 ,

Se que debe ser muy simple, pero la verdad no lo encuentro
Desde ya muchas gracias por la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Sumer mes a una fecha

Publicado por Lorena Gonzalez (24 intervenciones) el 19/05/2011 01:27:08
Yo hago lo siguiente, pongo unas variables dimensionadas a 12
Loc:Meses[1]=31
Loc:Meses[2]=28
Loc:Meses[3]=31
Loc:Meses[4]=30
Loc:Meses[5]=31
Loc:Meses[6]=30
Loc:Meses[7]=31
Loc:Meses[8]=31
Loc:Meses[9]=30
Loc:Meses[10]=31
Loc:Meses[11]=30
Loc:Meses[12]=31
Anio=Year(Today())
Mes=2
Loc:Fecha =Date(Mes,Loc:Meses[2],Anio)
Loc:Fecha2=Loc:Fecha + 1
If Month(Loc:Fecha2)=3 then Loc:Meses[2]=29. !!! Esto por el año bisiesto
Ahora si Reviso el mes de la fecha, por ejemplo tu fecha que es 28/02/2011
Loc:Fecha3=28/02/2011

If Month(Loc:Fecha3)=2
FechaNueva=Loc:Fecha3 + Loc:Meses[3] + Loc:Meses[4]
End

Es algo manual, pero efectivo, ahi lo aplicas a tu programa segun lo requieras
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Sumer mes a una fecha

Publicado por Marcelo Madelon (572 intervenciones) el 20/05/2011 12:08:22
Pedro,
Te paso algo de manejo de fechas y ves si te sirve.

! Forzar dia primero del mes
LOC:FechaDesde = DATE(MONTH(TODAY()),1,YEAR(TODAY()))

! Sumar Dos meses a la fecha actual
LOC:FechaDesde = DATE(MONTH(TODAY()) + 2,DAY(TODAY()),YEAR(TODAY()))

! Tomar la fecha del sistema
LOC:FechaHasta = TODAY()

! Controlo Fecha Que no sea mayor a Today() y Muestro en el Message el Valor de Today()
IF LOC:FechaHasta > Today()
Message('Fecha Hasta No Puede Ser Mayor a Fecha Actual......'&format(Today(),@d06b),'Mensaje del Sistema',ICON:Exclamation)
Select(?LOC:FechaHasta)
CYCLE
End

! Cargo Fecha Actual si la fecha ingresada = cero

IF LOC:FechaHasta = 0
LOC:FechaHasta = Today()
END
Display

! Cargo Fecha Actual menos 45 dias si la fecha ingresada = cero

IF LOC:FechaHasta = 0
LOC:FechaHasta = Today() - 45
END
Display



! Cargo una fecha inicial cuando fecha desde es igual a cero

IF LOC:FechaDesde = 0
LOC:FechaDesde = deformat ('01/01/1950',@d6)
END


! Calculo Nombre del Día y si es Sábado o Domingo sumo 2 o 1 para llegar hasta el Lunes

EXECUTE (LOC:FECHA % 7) + 1
LOC:Dia = 'Domingo'
LOC:Dia = 'Lunes'
LOC:Dia = 'Martes'
LOC:Dia = 'Miércoles'
LOC:Dia = 'Jueves'
LOC:Dia = 'Viernes'
LOC:Dia = 'Sábado'
END

! Otra forma
LOC:DiaSemana = choose((today() %7)+1,'Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado')

! Para Calcular el Número de Semana del Año
Loc:NroSemana = (Loc:Fecha_A_Calcular - date(01,01,year(Loc:Fecha_A_Calcular) / 7

Y tomar la parte entera de esto, sumar 1.
La fecha que formás con DATE debe ser siempre el 1 de enero del año que te interesa.



Espero te sirva.

Saludos desde Venado Tuerto - Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar