FoxPro/Visual FoxPro - MANEJO DE FECHA ME SALE MAL

 
Vista:

MANEJO DE FECHA ME SALE MAL

Publicado por IDELSY BOCIO (1 intervención) el 08/09/2016 03:05:24
Saludo a todos

En esta ocacion quiero presentarle un problema que tengo con una fecha:

Estoy intentando contruir una fecha con tres valores pero siempre me toma la fecha actual del sistema, les presento lo que tengo:

1
2
3
4
5
6
7
8
9
10
11
12
dia = DAY(contrato.fechav)
mes = MONTH(contrato.fechav)
ano = YEAR(contrato.fechav)
 
mes = mes + 1
IF mes > 12
   mes = 01
ENDIF
 
*RESULTADO:
thisform.fecha.value  = CTOD("dia/mes/ano")   No funciona
thisform.fecha.value  = DATE(dia,mes,ano)      No funciona

Aclaro que contrato.fechav es un campo de una tabla.

Si me pueden ayudar les pido por favor que lo hagan, como ven ya hice algo pero me sale mal.

Espero por ustedes.
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
sin imagen de perfil

MANEJO DE FECHA ME SALE MAL

Publicado por wences (35 intervenciones) el 08/09/2016 10:33:55
son campos numéricos , no puedes tratarlos con un ctod ni con un date ...

fecha=alltrim(str(dia,2,0))+"/"+ALLTRIM(str(mes,2,0))+"/"+str(ano,4,0)

asi lo puedes usar con el ctod por ejemplo

ctod(fecha)

Espero te sriva
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

MANEJO DE FECHA ME SALE MAL

Publicado por wences (35 intervenciones) el 08/09/2016 11:36:22
thisform.fecha.value = DATE(dia,mes,ano) No funciona
deberias usarlo como

date(ano,mes,dia) por defecto aunque tengas las fechas en cualquier formato usa ese formato ...
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
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

MANEJO DE FECHA ME SALE MAL

Publicado por Fidel José (657 intervenciones) el 08/09/2016 14:58:21
Debes utilizar la función DAte(), pero como corresponde:

DATE( Año , Mes , Dia )
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

MANEJO DE FECHA ME SALE MAL

Publicado por Foxshin (34 intervenciones) el 13/09/2016 20:15:05
Hola. :D

Es cierto, la sintaxis es incorrecta pero yo pregunto:
¿Qué necesitas hacer?.

Por lo que veo del código puedo pensar que quieres avanzar un mes tomando como base la fecha del campo "FechaV".
Si fuera asi te sugiero usar la función GOMONTH(), se usa para avanzar o retroceder el número de meses que especifiques. Su sintaxis es:
GOMONTH(dExpresión | tExpresión, nNúmeroMeses)

Para tu caso, si quieres avanzar un mes, todo tu código se resumiría en:
1
Thisform.Fecha.Value  = GOMONTH(Contrato.FechaV,1)

Es todo, espero te sirva, para mayor información puedes consultar la ayuda del VFP. ;-)

Saludos

Bytes ^_^
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
Val: 5
Ha aumentado su posición en 12 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

MANEJO DE FECHA ME SALE MAL

Publicado por Richard David (2 intervenciones) el 27/09/2016 12:40:51
Saludo, viendo tu Código hay 2 Modos de mostrar la Fecha en Cuadro de Texto Fecha:

1 Modo: Si guardas la Fecha del Contrato en Cadena de Caracteres. "01/02/2016"

select contrato
thisform.fecha.value = CTOD(contrato.fechav)

2 Modo: Si guardas la Fecha del Contrato en Formato Fecha. { / / }

select contrato
thisform.fecha.value = contrato.fechav

No entiendo, el desgloce por dia, mes, año; si solo manejas un campo, pero si deseas aumentar o reducir dias o meses esta es la forma:

Dias:
select contrato
thisform.fecha.value = CTOD(contrato.fechav) + nDias && Para aumentar los dias

thisform.fecha.value = CTOD(contrato.fechav) - nDias && Para retroceder dias.

nDias=Es la cantidad de dias que deseas ajustar.

Meses:

select contrato
thisform.fecha.value = GOMONTH(CTOD(contrato.fechav), nMeses) && Para aumentar meses.

thisform.fecha.value = GOMONTH(CTOD(contrato.fechav), -nMeses) && Para retroceder meses.

nMeses=Es la cantidad de Meses que deseas ajustar.

Espero haberte ayudado, se despide.

Richard Marrero
Ingeniero Magister en Sistemas
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