trabajar con fechas en formato string

4,546 views
Skip to first unread message

leonardo trujillo

unread,
Aug 7, 2012, 3:20:44 PM8/7/12
to grupo google vfp
gente, tengo las fechas como string formateadas así dd/mm/yyy
debo comparar dos fechas (=, <,>)
no puedo cambiar el formato en el que viene la fecha en la tabla
¿cómo puedo hacer para realizar tal comparación?
gracias

idalberto

unread,
Aug 7, 2012, 3:25:19 PM8/7/12
to publice...@googlegroups.com
Hola.
 
No dices si la otra fecha si le puedes dar el mismo formato o no . Si no puedes cambiar nada creo que una opcion seria convertir ambas fechas en dias y asi comparar. Si dije un disparate me excusan.
 
Idalberto Gonzalez

Ricardo Pina

unread,
Aug 7, 2012, 3:28:55 PM8/7/12
to publice...@googlegroups.com
Hola Leonardo
 
Puedes compararlas con
 
DTOS(CTOD(tufechastring1))
 
Saludos


 

--
 
 
 



--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 


leonardo trujillo

unread,
Aug 7, 2012, 3:34:21 PM8/7/12
to publice...@googlegroups.com
en realidad esas fechas a comparar están en la tabla o debería compararlas con una fecha dada
¿cómo dices de convertirlas en días?
gracias

--
 
 
 

Luis Maria Guayan

unread,
Aug 7, 2012, 3:52:24 PM8/7/12
to publice...@googlegroups.com
¿En la tabla están con formato Fecha o Caracter?

Si están con formato caracter "DD/MM/AAAA" entonces puedes pasarlas a formato fecha y allí trabajas todo como fecha

? CTOD("07/08/2012") = DATE()

Para mas info de como trabajar con fechas:

--Trabajar con fechas y horas en Visual FoxPro --
http://www.portalfox.com/article.php?sid=1162

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

--
 
 
 

Fox Learner

unread,
Aug 7, 2012, 3:57:10 PM8/7/12
to publice...@googlegroups.com
No entendí. A ver si te sirve:

set date french
set century on

fechainicial=ctod("3-3-12")
fechafinal=date()

if fechainicial = fechafinal

? "Las fechas son iguales"

else

? "Las fechas son distintas"

endif


* Si estan en una tabla puedes jalarla a una variable o referencia de objeto y desde trabajas.

* O pones en uso la tabla y comparas los campos directamente en vez de usar variables o referencias.

* Las funciones CtoD() o DtoC() pueden servirte.

Saludos!

Fox Learner

unread,
Aug 7, 2012, 4:03:58 PM8/7/12
to publice...@googlegroups.com
Creo que ya te entendí:

1. Tengo las fechas como string formateadas así dd/mm/yyy
2.No puedo cambiar el formato en el que viene la fecha en la tabla.

A. Pon en uso tu tabla
B. Asigna el valor de tus campos caracter a variables.
C. Convierte esas variables de string a date con CtoD()
D. Haz tus comparaciones y realiza lo que aplique.

Saludos!


leonardo trujillo

unread,
Aug 7, 2012, 4:20:24 PM8/7/12
to publice...@googlegroups.com
impecable, gracias a todos
me quedó clarísimo
muy buen aporte el de todos
ahora entiendo qué hace el ctod()
gracias



--
 
 
 

leonardo trujillo

unread,
Aug 7, 2012, 4:25:32 PM8/7/12
to publice...@googlegroups.com
y otra cosa
¿cómo debería tener el set date?

Walter R. Ojeda Valiente

unread,
Aug 7, 2012, 4:38:25 PM8/7/12
to publice...@googlegroups.com
Depende de como quieras ver las fechas.

1. Para verlas con el formato dd/mm/aaaa
SET DATE BRITISH

2. Para verlas con el formato mm/dd/aaaa
SET DATE AMERICAN

3. Para verlas con el formato aaaa/mm/dd
SET DATE JAPAN

Saludos.

Walter.





Date: Tue, 7 Aug 2012 17:25:32 -0300
Subject: Re: [vfp] Re: trabajar con fechas en formato string
From: trujillo...@gmail.com
To: publice...@googlegroups.com
--
 
 
 

Víctor Hugo Espínola Domínguez

unread,
Aug 7, 2012, 4:38:49 PM8/7/12
to publice...@googlegroups.com
Hola Leonardo

El SET DATE lo elige el programador de común acuerdo con el usuario. Es una cuestión de gusto personal, a mí me gusta el ITALIAN. Sólo afecta a la introducción y exhibición de datos y a la función DTOC. Cualquier operación, aritmética o lógica, que involucre a fechas siempre arroja el mismo resultado independientemente del SET DATE.

Saludos.
Víctor.


--
 
 
 

Fox Learner

unread,
Aug 7, 2012, 4:41:46 PM8/7/12
to publice...@googlegroups.com
Amigo.. puedes usar SET DATE FRENCH para que sea dd/mm/aaaa, así con diagonales.

O ITALIAN para que sea con dd-mm-aaaa, con guiones.

Para tu caso, no importa porque tu dices que ya viene "preformateado" desde la tabla y lo manejarías como tipo caracter.

Supongo que estas accediendo a una aplicacion, pero no tienes control sobre las tablas ni sobre la configuracion del sistema, no ?..

Saludos!

Walter R. Ojeda Valiente

unread,
Aug 7, 2012, 4:50:48 PM8/7/12
to publice...@googlegroups.com
Lo mejor para estos casos es tener un formulario de CONFIGURACIÓN o de PARÁMETROS donde el usuario elige lo que le gusta.

No solamente es conveniente hacerlo para el formato de las fechas, sino también para los separadores de miles, los separadores de la parte decimal, etc.

Entonces, cada usuario tiene total libertad de elegir la apariencia que prefiere. Eso aumenta la profesionalidad de tus aplicaciones.

Saludos.

Walter.





Date: Tue, 7 Aug 2012 16:38:49 -0400

Subject: Re: [vfp] Re: trabajar con fechas en formato string
--
 
 
 

leonardo trujillo

unread,
Aug 7, 2012, 6:12:43 PM8/7/12
to publice...@googlegroups.com
buenísimas vuestras explicaciones
además la duda iba más por el lado de si tenía que ver con dtoc(), despejada por victor hugo
pero la info posterior también me ha servido
walter: es verdad no tengo control sobre las tablas, mejor, estás refieren a otra aplicación que por ahora no podré "tocar"
fox learner: gracias por lo del set date french, creo que es lo que tendré que usar para mostrar, en el caso que luego pueda cambiar al formato fecha y no usar caracter
como siempre, la sencillez de la opción de luis maría es por la que optado, ya que calzaba con mis necesidades
gracias ricardo e idalberto, también
saludos


--
 
 
 

Reply all
Reply to author
Forward
0 new messages