bem, olá novamente.
o processo citado acima trancorria normalmente, até eu me deparar com os valores exatos dos dias.
supondo a data 04/10/2012 como data de inicio e 28/10/2012 como data do termino do intervalo que eu quero (incluindo as datas citadas), deveriam ser exibidas 4 ocorrencias de datas (já que eu quero a lista de quinta a domingo deste intervalo, são 4 quintas, sextas, sabados e domingos).
Porem, se eu exatamente o intervalo, a ultima data de domingo (a unica que nao excede) ela não é retornada no método.
os metodos que estou usando:
Util.class
private static Calendar parseCal (String dd_mm_yyyy) throws ParseException {
DateFormat df = new SimpleDateFormat ("dd/MM/yyyy");
Date dt = df.parse (dd_mm_yyyy);
Calendar cal = Calendar.getInstance();
cal.setTime (dt);
return cal;
}
public static ArrayList<String> getListaDomingo(String dataInicio, String dataFim) throws Exception{
ArrayList<String> lista = new ArrayList<String>();
DateFormat df = new SimpleDateFormat ("dd/MM/yyyy");
Calendar inicio = parseCal (dataInicio);
Calendar fim = parseCal (dataFim);
for (Calendar c = (Calendar) inicio.clone(); c.compareTo (fim) <= 0; c.add (Calendar.DATE, +1)) {
if (c.get (Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
lista.add(df.format(c.getTime()));
}
return lista;
}
Main.class
list = Util.getListaDomingo ("06/10/2012", "28/10/2012");
System.out.println("Domingo");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
o resultado é este aqui:
Domingo
07/10/2012
14/10/2012
21/10/2012
sendo que o ideal:
Domingo
07/10/2012
14/10/2012
21/10/2012
28/10/2012
e, se eu coloco uma saida dos dias no metodo da classe
Util (uma linha no for do metodo
getListaDomingo)
System.out.println(c.get(Calendar.DAY_OF_WEEK));
ele devolve isto:
5 //quinta
6 //sexta
7 //sabado
1 //domingo
2 //segunda
3 //terça
4 //quarta
5
6
7
1
2
3
4
5
6
7
1
2
3
4
5
6
7 //aqui o sabado - mas ele encerra aqui o loop
como faço para o intervalo contar também com o dia especificado para o termino dele?