Horacio
Si en DBF el campo FechaBDF = 12302012
FechaString = SUB (FechaDBF,3,2) & '/' & SUB (FechaDBF,1,2) & '/' SUB (FechaDBF,5,4)
De esta manera FechaStrin se cargará con: 30/12/2012
Luego la deformateas
FechaTps = deformat (StringFecha,@d06)
Creo si no entendí mal tu planteo.
Prueba y avisa como te fue.
Saludos desde Venado Tuerto - Argentina
Codigos varios para trabajar con fechas.
LOC:FechaDesde = deformat ('01/01/1950',@d06)
LOC:FechaDesde = deformat (StringFecha,@d06)
StringFecha tiene cargado: '01/01/1950'
! 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
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.
! Cargo FechaVenc
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
Nombredia = 'Lunes '
END
If Resto = 6 ! sumo hasta el Lunes
FechaVenc += 2
Nombredia = 'Lunes '
END
Display ()