Filtrando datas em Gregorian calendar
Tenho um aplicação onde eu preciso filtrar as solicitações por data. A data da solicitação na classe que mapeia o banco é do tipo Gregorian Calendar. Estou tentando filtrar as movimentações ocorridas entre 04/04/20013 até 04/04/2013 e não traz nada , sendo que possuo 2 movimentações neste período. Agora quando faça entre 04/04/20013 até 05/04/2013 eles traz as duas.
Terei que adicionar um dia a mais na data final.
Obs : Eu uso webservice e as datas são String . Quando chega no servidor eu converto para data
veja o ex:
public List<Solicitacao> listaSolicitacaoPorData(String dataIni,String dataFim, Integer tipo, Integer idUsuario, String compartilhada) {
Date d1 = new Date();
Date d2 = new Date();
GregorianCalendar cal1= new GregorianCalendar();
GregorianCalendar cal2=new GregorianCalendar();
try {
Date date1 = new Date();
Date date2 = new Date();
date1 = new SimpleDateFormat("dd/MM/yyyy").parse(dataIni);
System.out.println(date1);
d1 = date1;
date2 = new SimpleDateFormat("dd/MM/yyyy").parse(dataFim);
d2 = date2;
System.out.println(date2);
cal1.setTime(date1);
cal2.setTime(date2);
} catch (ParseException e) {
e.printStackTrace();
}
SolicitacaoRN solicitacaoRN= new SolicitacaoRN();
return solicitacaoRN.listaSolicitacaoPorData(cal1,cal2,tipo, idUsuario, compartilhada);
}
Terei que adicionar um dia a mais na data final.
Obs : Eu uso webservice e as datas são String . Quando chega no servidor eu converto para data
veja o ex:
public List<Solicitacao> listaSolicitacaoPorData(String dataIni,String dataFim, Integer tipo, Integer idUsuario, String compartilhada) {
Date d1 = new Date();
Date d2 = new Date();
GregorianCalendar cal1= new GregorianCalendar();
GregorianCalendar cal2=new GregorianCalendar();
try {
Date date1 = new Date();
Date date2 = new Date();
date1 = new SimpleDateFormat("dd/MM/yyyy").parse(dataIni);
System.out.println(date1);
d1 = date1;
date2 = new SimpleDateFormat("dd/MM/yyyy").parse(dataFim);
d2 = date2;
System.out.println(date2);
cal1.setTime(date1);
cal2.setTime(date2);
} catch (ParseException e) {
e.printStackTrace();
}
SolicitacaoRN solicitacaoRN= new SolicitacaoRN();
return solicitacaoRN.listaSolicitacaoPorData(cal1,cal2,tipo, idUsuario, compartilhada);
}
Jose Boas
Curtidas 0
Respostas
Rafael Benetti
22/05/2013
Cara ja fiz uma aplicacao deste tipo..
onde tinha que marcar os horarios de entradas e saidas dos funcionarios, e foi um show!!!
por que eles trabalhavao em tres turnos manha tarde e noite!!!
entao quem trabalhava a noite entrava no dia 04-04 mas saia ja no 05-04...
o que eu te indicaria e fazer o seguinte...
dentro deste teu metodo que busca...
pega a data final e adiciona um dia a mais entede e faz isso mesmo que foce falou(quando eu colo um dia a mais funciona)
por que se voce se der en conta ele tem que fazer a data ser desde dia 04-04 (00:01) ate 05-05(00:01)...
onde tinha que marcar os horarios de entradas e saidas dos funcionarios, e foi um show!!!
por que eles trabalhavao em tres turnos manha tarde e noite!!!
entao quem trabalhava a noite entrava no dia 04-04 mas saia ja no 05-04...
o que eu te indicaria e fazer o seguinte...
dentro deste teu metodo que busca...
pega a data final e adiciona um dia a mais entede e faz isso mesmo que foce falou(quando eu colo um dia a mais funciona)
por que se voce se der en conta ele tem que fazer a data ser desde dia 04-04 (00:01) ate 05-05(00:01)...
GOSTEI 0
Rafael Benetti
22/05/2013
Da uma olhadinha nisso
http://www.tecnoclasta.com/2009/06/08/como-lidar-com-datas-e-horas-em-java/
tenta fazer com que a primeria data (dataInicial)seja hora (00:01)
e a segunda data(dataFinal)(23:59)
gc.set(gc.HOUR,00);
ai acredito que vai dar certo!!!
http://www.tecnoclasta.com/2009/06/08/como-lidar-com-datas-e-horas-em-java/
tenta fazer com que a primeria data (dataInicial)seja hora (00:01)
e a segunda data(dataFinal)(23:59)
gc.set(gc.HOUR,00);
ai acredito que vai dar certo!!!
GOSTEI 0
Jose Boas
22/05/2013
Obrigado pela DICA. Eu fiz isto mesmo adicionei um dia .
Lei em conta o que você disse em :
por que se voce se der en conta ele tem que fazer a data ser desde dia 04-04 (00:01) ate 05-05(00:01)...
Lei em conta o que você disse em :
por que se voce se der en conta ele tem que fazer a data ser desde dia 04-04 (00:01) ate 05-05(00:01)...
GOSTEI 0
Rafael Benetti
22/05/2013
Que sorte que consegui te ajudar fico muito feliz!!!
qualquer duvida que eu possa ajudar me avisa!!
tenho muitas video aulas tbm se um dia precisar me da um toque!!!
rafareypy@gmail.com esse eh meu email!!!
qualquer duvida que eu possa ajudar me avisa!!
tenho muitas video aulas tbm se um dia precisar me da um toque!!!
rafareypy@gmail.com esse eh meu email!!!
GOSTEI 0
José
22/05/2013
Já que a duvida foi sanada, estou finalizando o tópico.,
GOSTEI 0