For Master Java - Datas

4 respostas
rodrigoalves639

Ola pessoal sou iniciante em java e gostaria da ajuda dos Master em Java.

Galera em uma tela de venda de Taxas eu tenho data inicial e data final do tipo Date para cada taxa e tenho um relacionamento 1 X N que esta me complicano, tipo assim: Para cada cliente eu posso vender N Taxa. Quando eu vou salvar as informaçoes eu preciso verifica no banco se naquela data informada inicial e final eu ja tenho uma taxa vendida.

Simplificando eu preciso fazer uma comparacao entre tipos Date no java, eu preciso pegar a data inicial e final que eu estou informando na tela e verificar no banco se naquele periodo eu ja tenho uma taxa vendida para aquele cliente.
Galera eu nao sei como comparar periodo de data em java, alguem sabe como me ajudar, ou sabe de uma melhor forma de eu resolver este problema.

Desde ja muito obrigado.

4 Respostas

Vini_Fernandes

Para comparacao voce pode usar:

Date dataAntiga = new Date();
Date dataNova = new Date();
dataAntiga.compareTo(davaNova);

Para mais detalhes:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html

T+

rodrigoalves639

Valeu Fernandes vou dar uma estudada neste metodo compareTo, abaixo esta um exemplo do meu problema.

Exemplo: 02/02/2009 a 02/08/2009 neste periodo uma taxa foi reservada. Quando eu informar em um outro cadastro a data 02/04/2009 a 02/10/2009 para a mesma taxa o sistema deve validar e informar que dentro deste periodo esta taxa esta reservada.

Brigadao…

B

Você também pode utilizar os métodos after e before da interface Calendar. Estes método equivalem ao compareTo também.

Se puder, dê uma olhada na documentação.
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html

:slight_smile:

rodrigoalves639

valeu pela força galera usei o getTime e deu certo

if ( (dataInicial.getTime() >= banco.getDataInicial().getTime() && dataInicial.getTime() <= banco.getDataFinal().getTime() ) || (dataFinal.getTime() >= banco.getDataInicial().getTime() && dataFinal.getTime() <= banco.getDataFinal().getTime() ) ){

throw new Exception("Periodo: Já existe uma isenção cadastrada neste periodo! ");

}

Onde:

dataInicial e dataFinal sao as datas que o usuario esta informando no cadastro.

banco.getDataInicial() e banco.getDataFinal() sao as datas que ja estao cadastradas no banco e que eu obtive fazendo uma consulta.

Valeu galera, qualquer melhoria, opiniao ou duvida posta ai…

Criado 3 de novembro de 2009
Ultima resposta 4 de nov. de 2009
Respostas 4
Participantes 3