Martin.
A la variable o campo fecha que declaras solo tenes que sumarle la cantidad de dias (podes tambíen restar)
FechaHoy = Today() ! Te toma el valor de la fecha de la maquina.
FechaVto = FechaHoy + 30 ! Listo
Por supuesto que las dos variables deben estar declaradas como campo fecha
(Date)
Clarion las guarda en Juliana y tanto la suma y la resta no es un problema.
Algunas otras
! para cargar un valor por defecto en el caso que el operador haya puesto Cero
IF LOC:FechaDesde = 0
LOC:FechaDesde = deformat ('01/01/1950',@d6) ! Fijate que use DeFormat
END
! Primer Dia del Mes
LOC:FechaDesde = DATE(MONTH(TODAY()) , 1 , YEAR(TODAY()))
! 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 de averiguar el nombre del dia
LOC:DiaSemana = choose((today() %7)+1,'Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado')
!!!!!!!!!!!!!!!!!!!!!!!
Fecha_1 = (Dia&'/'&Mes&'/'&Anio) ! Armo la fecha sobre un string de 10
FechaVenc = deformat (Fecha_1,@d6) ! La deformateo
Resto = (FechaVenc % 7) ! Averiguo Resto (Modulo)
! Según el valor de Resto Armo el nombre del dia
!% Modulus Division (A % B gives the remainder of A divided by B)
If Resto = 0 Then Nombredia = 'Domingo '.
If Resto = 1 Then Nombredia = 'Lunes '.
If Resto = 2 Then Nombredia = 'Martes '.
If Resto = 3 Then Nombredia = 'Miercoles'.
If Resto = 4 Then Nombredia = 'Jueves '.
If Resto = 5 Then Nombredia = 'Viernes '.
If Resto = 6 Then Nombredia = 'Sábado '.
IF Resto = 0 ! sumo hasta el Lunes
FechaVenc += 1 ! Aca es Domigo y sumo 1 para pasar el Vto al Lunes
Nombredia = 'Lunes ' ! Le cambio el nombre del dia
END
If Resto = 6 ! sumo hasta el Lunes
FechaVenc += 2 Aca es Sábado y sumo 2 para pasar el Vto al Lunes
Nombredia = 'Lunes ' ! Le cambio el nombre del dia
END
Display ()