FoxPro/Visual FoxPro - interseccion de fechas

   
Vista:

interseccion de fechas

Publicado por claudia (1 intervención) el 08/08/2010 04:34:49
hola a todos
en una aplicacion tengo dos rangos de fechas, quisiera programar para saber si estos dos rangos tienen alguna interseccion ( es decir si al menos en un dia se tocan). si es en sql seria mejor
saludos
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:interseccion de fechas

Publicado por xx (378 intervenciones) el 09/08/2010 00:27:11
Nunca lo hice pero supongo que si algun dia lo necesitase lo haria asi:



* suponiendo que el primer rango de fechas sea
*_ini1
*_fin1
* segundo rango de fechas sea
*_ini2
*_fin2

_intersec=.f.
_ftmp=_ini1
do while _ftmp<_fin1
if between( _ftmp, _ini2, _fin2 )
_intersec=.t.
exit
endif
_ftmp=_ftmp+1
enddo

*_intersec si esta variable da .t. hay interseccion si no no hay!!
*
* OJO: deberias buscar otra alternativa si los rangos de fechas son muy grandes
* para optimizar!!
*

Espero haber ayudado!
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:interseccion de fechas

Publicado por santiago (376 intervenciones) el 09/08/2010 00:56:58
Hola, el tema es en realidad simple:

Basado en el aporte del amigo xx

* suponiendo que el primer rango de fechas sea
*_ini1
*_fin1
* segundo rango de fechas sea
*_ini2
*_fin2

if ini1 > ini2 and ini1 < fin2
*** fecha de inicio rango 1 dentro de rango 2
endif

if fin1 > ini2 and fin1 < fin2
*** fecha de inicio rango 1 dentro de rango 2
endif

*** si se cumple cualquiera de los dos, entonces se cruzan

if ini2 > ini1 and ini2 < fin1
*** fecha de inicio rango 2 dentro de rango 1
endif

if fin2 > ini1 and fin2 < fin1
*** fecha de inicio rango 2 dentro de rango 1
endif

*** si se cumple cualquiera de los dos, entonces se cruzan
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:interseccion de fechas

Publicado por Ricardo Alcántara (1 intervención) el 26/06/2013 03:24:06
Se deben usar los signos <= y >= en lugar de < y > para que funcione
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