Imprimir tabela com anos, meses e dias

Bom dia, alguém pode me ajudar com isso.

Preciso imprimir uma tabela com o período a partir de duas datas informadas.

Por exemplo, se o usuário digitar 01/12/2017 e 31/01/2018, deverá aparecer assim.

Alguém pode postar algum exemplo de como fazer isso? Estou usando Calendar e Java7 para fazer, mas não consigo criar essa tabela com os for.

Estou usando essa função para pegar os dias do período.

private List<Date> listaDias (Date dtIni, Date dtFim) {
List<Date> result = new ArrayList<Date>();
Calendar start = Calendar.getInstance();
start.setTime(dtIni);
Calendar end = Calendar.getInstance();
end.setTime(dtFim);
end.add(Calendar.DAY_OF_YEAR, 1); 
while (start.before(end)) {
    result.add(start.getTime());
    start.add(Calendar.DAY_OF_YEAR, 1);
}
return result;

}

Agradeço demais a ajuda.

Seria assim:

2017
Dez
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2018
Jan
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

A classe Calendar fornece várias facilidades para isso:

Calendar cal = Calendar.getInstance(); // Vai pegar o dia 18/01/2018
int ano = cal.get(Calendar.YEAR);//Retorna 2018
int mes = cal.get(Calendar.MONTH);// Retorna 0 e não 1, pois é Janeiro e é o primeiro elemento da lista!!!
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); //Retorna o último dia do mês em questão, como é janeiro, retorna 31

A partir disso, você cria o resto.
Viu como é simples?