Ajuda em um loop para datas entre 01/01/2016 a 31/12/2016

3 respostas Resolvido
datetimejava
O

Preciso imprimir no meu console para estudos, um loop que apresente as data de 01/01/2016 (inclusive) a 31/12/2016 (inclusive também).

SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
Date inicioDate = sdf.parse("01-01-2016");
Date fimDate = sdf.parse("31/12/2016");

Estou usando o Calendar, é o mais correto?

Calendar start = Calendar.getInstance();
start.setTime(inicioDate);
Calendar end = Calendar.getInstance();
end.setTime(fimDate);

Como eu faria o laço de repetição pra imprimir estas data?

for ( .......) 
{
    System.out.println(....);
}

3 Respostas

P

vc começa na data start, vai até a data end e incrementa um dia por vez.

D
Solucao aceita

Para imprimir o ano completo seria 01/01/2015 até 01/01/2016:

SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
Date inicioDate = sdf.parse("01/01/2015");
Date fimDate = sdf.parse("01/01/2016");

Calendar start = Calendar.getInstance();
start.setTime(inicioDate);
Calendar end = Calendar.getInstance();
end.setTime(fimDate);


for(Calendar d = start; d.getTimeInMillis() <= end.getTimeInMillis();  d.add(Calendar.DATE, 1))
{
	System.out.println(sdf.format(d.getTime()));
}
O

Obrigado! Funcionou!

Criado 22 de outubro de 2016
Ultima resposta 23 de out. de 2016
Respostas 3
Participantes 3