Bom dia, pessoal.
Estou com um problema a qual não consigo a solução, estou fazendo um relatório com java e apache poi,
um deses relatório tenho que passar um intervalo entre datas para gerar o relatório, na verdade o que me interessa é somente o mês e o ano, pois quando monto a query sempre monto a data recuperada entre o dia 01 e 31.
tenho esse código que faço usando millesegundos, mas ele não é eficiente pois passo 30 dias e nem sempre o mês tem 30 dias.
private List<Date> getRageDate(String dataInicial, String dataFinal){
List<Date> dates = new ArrayList<Date>();
DateFormat formatter ;
try {
formatter = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM-dd");
Date startDate;
startDate = (Date)formatter.parse(dataInicial);
Date endDate = (Date)formatter.parse(dataFinal);
long interval = 2629800000L; // 1 month in millis
long endTime =endDate.getTime() ;
long curTime = startDate.getTime();
while (curTime <= endTime) {
dates.add(new Date(curTime));
curTime += interval;
}
for(int i=0;i<dates.size();i++){
Date lDate =(Date)dates.get(i);
String ds = formatter2.format(lDate);
System.out.println(" Date is ..." + ds);
dates.add(ds);
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
preciso de algo que retorne os meses entre duas datas tipo:
dataInicial = “01-01-208” e dataFInal = “27-04-2018”;
teria que retornar
01-01-208
01-02-2018
01-03-208
01-04-208
os dias não importa, eu poderia até substituir o dia que pego do front end sempre para 01 que não teria problema.
Agradeço desde já.

