comparaçao de intervalos de datas

Delphi

25/01/2012

bom dia amigos da devmedia, gostaria de uma ajuda de voces, por exemplo eu tenho dois intervalos: 10/01/2012 a 15/01/2012 e o intervalo 08/01/2012 a 13/01/2012, eu queria pegar somente os dias do intervalo 2 que estao dentro do intervalo 1, por exemplo o intervalo 1 começa no dia 10, mas o intervalo 2 começa no dia 8 que e antes, queria que ignorasse os dias do intervalo 2 que nao estivesse no intervalo 1 e somasse quantos dias deu ....
banco firebird 2.1 e delphi 2010
se alguem puder me ajudar ficarei grato !!!
Willian Bento

Willian Bento

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

25/01/2012

Boa tarde.
Com alguma noção de conjuntos, podemos verificar o seguinte: o intervalo real (final) será formado por uma das duas datas iniciais e uma das duas datas finais.
Para exemplificar, tomemos algumas variáveis:
-inicial_1: primeira data do primeiro intervalo
-final_1: segunda data do primeiro intervalo
-inicial_2: primeira data do segundo intervalo
-final_2: segunda data do segundo intervalo
-inicial_real: primeira data do intervalo final
-final_real: segunda data do intervalo final

Então, temos:

SE inicial_1 > inicial_2 ENTÃO inicial_real = inicial_1 SENÃO inicial_real = inicial_2;

SE final_1 > final_2 ENTÃO final_real = final_2 SENÃO final_real = final_1;

Feito isso, é só contar quantos dias existem no intervalo final.

Espero que seja isso.
Boa sorte.
GOSTEI 0
Willian Bento

Willian Bento

25/01/2012

boa tarde.
com alguma noção de conjuntos, podemos verificar o seguinte: o intervalo real (final) será formado por uma das duas datas iniciais e uma das duas datas finais.
para exemplificar, tomemos algumas variáveis:
-inicial_1: primeira data do primeiro intervalo
-final_1: segunda data do primeiro intervalo
-inicial_2: primeira data do segundo intervalo
-final_2: segunda data do segundo intervalo
-inicial_real: primeira data do intervalo final
-final_real: segunda data do intervalo final

então, temos:

se inicial_1 > inicial_2 então inicial_real = inicial_1 senão inicial_real = inicial_2;

se final_1 > final_2 então final_real = final_2 senão final_real = final_1;

feito isso, é só contar quantos dias existem no intervalo final.

espero que seja isso.
boa sorte.


entao joel vou verificar e te falo o resultado obrigado
GOSTEI 0
Willian Bento

Willian Bento

25/01/2012

boa tarde.
com alguma noção de conjuntos, podemos verificar o seguinte: o intervalo real (final) será formado por uma das duas datas iniciais e uma das duas datas finais.
para exemplificar, tomemos algumas variáveis:
-inicial_1: primeira data do primeiro intervalo
-final_1: segunda data do primeiro intervalo
-inicial_2: primeira data do segundo intervalo
-final_2: segunda data do segundo intervalo
-inicial_real: primeira data do intervalo final
-final_real: segunda data do intervalo final

então, temos:

se inicial_1 > inicial_2 então inicial_real = inicial_1 senão inicial_real = inicial_2;

se final_1 > final_2 então final_real = final_2 senão final_real = final_1;

feito isso, é só contar quantos dias existem no intervalo final.

espero que seja isso.
boa sorte.

entao joel vou verificar e te falo o resultado obrigado


entao joel, deu certo muito obrigado, era isso mesmo que eu tava precisando, valeu pela ajuda, como faço para colocar o topico como resolvido ??
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

25/01/2012

Rapaz, tá aí uma pergunta que eu nunca soube responder. =/
GOSTEI 0
POSTAR