FoxPro/Visual FoxPro - Comparar Fechas

   
Vista:

Comparar Fechas

Publicado por JAVIER (24 intervenciones) el 05/06/2009 19:09:29
Hola Amigos
Estoy trabado en la comparacion de fechas para validar que la fecha 2 sea mayor a la fecha 1

La fecha1 esta compuesta por 2 combo 1 textbox, la fecha 2 esya compueta por un text con formato fecha..

Envio detalle:

****FECHA 1

ANOVENCI1=(MONTH(CTOD(THISFORM.COMBO2.Value)))
MESVENCI1=(YEAR(CTOD(THISFORM.COMBO1.Value)))
DIAVENCI1=(DAY(CTOD(THISFORM.TEXt6.Value)))

****FECHA2
FECHAVENCI=(THISFORM.TEXT9.VALUE)


Gracias Chaooo
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

RE:Comparar Fechas

Publicado por Plinio (7771 intervenciones) el 05/06/2009 20:44:36
Si los dos campos son tipo fecha no necesitas hacer tango rejuego. Si por ejemplo tienes dos textbox y el value es tipo date
Thisform.txtResultado.value = Thisform.txtFecha_final.value - Thisform.txtFecha_inicial.valu

En el caso de un combo, tal vez el value no está como tipo date, en ese caso puedes convertilo
fecha1=ctod(Thisform.combo2.value)
fecha1=ctod(Thisform.combo1.value)

tHISFORM.TEXT9.VALUE = fecha1 - fecha2
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

RE:Comparar Fechas

Publicado por javier (24 intervenciones) el 05/06/2009 21:03:02
El problema que tengo , es que debo asignar el valor a la FECHA1 , a partir de un combo1(mes), combo2(año) y un text1 (dia), para comparar luego con un valor de entrada en un tex2 tipo fecha.
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

RE:Comparar Fechas

Publicado por andy (221 intervenciones) el 05/06/2009 21:36:33
No habia visto tu segundo post,
Presupongo que los datos son numericos, entonces debes "armar" la FECHA1
La cosa quedaria algo asi:

ANOVENCI1=THISFORM.COMBO2.Value
MESVENCI1=THISFORM.COMBO1.Value
DIAVENCI1=THISFORM.TEXt6.Value

FECHA1=ctod(str(DIAVENCI1,2)+'/'+str(MESVENCI1,2)+'/'+str(ANOVENCI1,4))

IF FECHA1=FECHAVENCI
MESSAGEBOX("YA ESTA VENCIDO")
ELSE
dd=FECHAVENCI-FECHA1
MESSAGEBOX("FALTAN "+str(dd, 2)+" DIAS PARA SU VENCIMIENTO")
ENDIF
RETU
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

RE:Comparar Fechas

Publicado por andy (221 intervenciones) el 05/06/2009 21:21:32
En primer lugar tienes un error en las variables:

ANOVENCI1=(MONTH(CTOD(THISFORM.COMBO2.Value)))
MESVENCI1=(YEAR(CTOD(THISFORM.COMBO1.Value)))
la 1º debe decir YEAR, y la 2º MONTH (AÑO Y MES)

otra cosa los valores de las combos son campos fecha(DATE)?
Si es asi este ejemplo te aclara un poco la cosa:

*prg
set date french
set centu on

FECHAVENCI=DATE()-3 &&PUEDES CAMBIAR Y PONER +10, POR EJEMPLO

ANOVENCI1=year(date())
MESVENCI1=month(date())
DIAVENCI1=DAY(date())

fechaFinal=ctod(str(DIAVENCI1,2)+'/'+str(MESVENCI1,2)+'/'+str(ANOVENCI1,4))

IF FECHAFINAL>=FECHAVENCI
MESSAGEBOX("YA ESTA VENCIDO")
ELSE
dd=FECHAVENCI-fechafinal
MESSAGEBOX("FALTAN "+str(dd, 2)+" DIAS PARA SU VENCIMIENTO")
ENDIF
RETU
*--end

Si las combos son campos numericos:
estas lineas quedan asi

ANOVENCI1=2009
MESVENCI1=6
DIAVENCI1=6
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

RE:Comparar Fechas

Publicado por RESUELTO (24 intervenciones) el 06/06/2009 22:56:20
Gracias me sirvio bastante tu ayuda , resolvi mi problema


TRANSFORME LOS VALORES NUMERICOS

ANOVENCI1=val(thisform.combo2.value)
mesvenci1=val(mesnumero)
DIAVENCI1=val(THISFORM.TEXt6.Value)

UNI LAS VARIABLES Y LAS CONVERTI A FECHA
FECHA1=ctod(str(DIAVENCI1,2)+'/'+str(MESVENCI1,2)+'/'+str(ANOVENCI1,4))


VALIDACIONES DE AYUDA

if fecha1=thisform.text9.Value
messagebox("ok")
ENDIF
if fecha1<thisform.text9.Value
messagebox("menor")
ENDIF
if fecha1>thisform.text9.Value
messagebox("mayor")
ENDIF
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