public ArrayList<Integer> getMesesEntreDatas(Date dataInicial, Date dataFinal) {
Calendar calendarInicial = Calendar.getInstance();
Calendar calendarFinal = Calendar.getInstance();
calendarInicial.setTime(dataInicial);
calendarFinal.setTime(dataFinal);
ArrayList<Integer> meses = new ArrayList<Integer>();
for (int i = calendarInicial.get(Calendar.MONTH) + 1; i < calendarFinal.get(Calendar.MONTH); i++) {
meses.add(i);
}
return meses;
}
Uso:
ArrayList<Integer> meses = getMesesEntreDatas(dataInicial, dataFinal);
for (Integer mes : meses) {
System.out.println(mes);
}
Mas em vez de imprimir os meses, pega este ArrayList no teu DataTable no teu XHTML.
Se quiser uma coisa mais robusta, faz a tratativa de calcular os meses levando os anos em consideração.
[]s