Como obter todos os dias de um período de datas

Boa tarde!!

Bom, fiz algumas pesquisas mas minha duvida é um pouco diferente.

Vamos la.

Supondo que eu tenha duas Strings com um formato de data yyyy-MM-dd ou dd/MM/yyyy, por exemplo.
Caso eu queira uma lista de todos os dias nesse intervalo, como devo prosseguir?

Estou pesquisando as classes Calendar, Date, DateFormat e SimpleDateFormat mas ainda está um pouco confuso para mim.
Exemplo:

Tendo os intervalos 10/07/2009 e 2/10/2009 gostaria de ter uma lista dos dias que estão compreendidos nesse período assim:

Alguém tem alguma sugestão? Não conheço quase nada as classes de Date and Time de java.

Grato!

import java.util.*;
import java.text.*;

class TesteIntervaloDatas {
    public static void main(String[] args) throws ParseException {
        DateFormat df = new SimpleDateFormat ("dd/MM/yyyy");
        Date dt1 = df.parse ("10/07/2009");
        Date dt2 = df.parse ("02/10/2009");
        Calendar cal = Calendar.getInstance();
        cal.setTime (dt1);
        for (Date dt = dt1; dt.compareTo (dt2) <= 0; ) {
            System.out.println (df.format (dt));
            cal.add (Calendar.DATE, +1);
            dt = cal.getTime();
        }
    }
}
1 curtida

Poxa cara…

Muito simples!
Salvou minha vida man!

Farei alguns testes com outros casos semelhantes e posto resultados.

Muito obrigado novamente e abraços!

E caso eu tenha uma data, tipo 10/07/2009 (qta imaginação né?) e queira o último dia daquele mês naquele ano, tipo 31/07/2009? alguma dica?

Imensamente grato!

Só pra ser mais específico, dado o exemplo inicial do tópico, seria interessante que eu obtesse o primeiro e último dia de cada mês desse período.
Algo do tipo:

 10/07/2009
 31/07/2009

 01/08/2009
 31/08/2009

 01/09/2009
 30/09/2009

 01/10/2009
 02/10/2009

Sei que to perguntando demais, mas juro que to tentando aqui a fazer esse exercício dumal.
Não reparem a n00bagem, nunca tinha mexido com essas classes Calendar antes…

Mais sugestões? =D

Obrigado!!

http://www.guj.com.br/posts/list/30592.java#164469 - getActualMaximum

thingol eu te amo hehehehe

Com essas informações consegui exatamente aquilo que queria:

List<Relatorio> lista = new ArrayList<Relatorio>();

            for (Date dt = dtI; dt.compareTo(dtF) <= 0;) {
                Relatorio obj = new Relatorio();

                obj.setDataInicial(ft.format(dt));

                int ultimoDia = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
                int diaAtual = cal.get(cal.DAY_OF_MONTH);
                cal.add(Calendar.DATE, +(ultimoDia - diaAtual)); //a.k.a. DUD (ultimo dia do mes corrente, vide teste de mesa =P)

                if (cal.getTime().compareTo(dtF) < 0) {
                    obj.setDataFinal(ft.format(cal.getTime()));
                } else {
                    obj.setDataFinal(ft.format(dtF));
                }

                lista.add(obj);

                cal.add(Calendar.DATE, +1);
                dt = cal.getTime();
            }

Funcionou perfeitamente aqui!

Muitíssimo obigado pela ajuda!

Dica: leia o Javadoc do Calendar

http://java.sun.com/javase/6/docs/api/java/util/Calendar.html