Aconteceu algo comigo que eu não entendi o porque, não achei nada no google que mencionasse isso, vou explicar a situação:
Tenho um período de datas, no caso que eu peguei o acontecido foi de 23/01/2016 a 17/07/2017.
Eu passo um parâmetro para um método que vai dizer como esse período deve ser separado (dia, semana, mes, trimestre, semestre e ano).
Tudo funcionando corretamente, ou quase, notei que na separação diária, faltava o ultimo dia na minha lista.
No meu while, eu comparo por milissegundos, (while (inicio.getTimeinMillis() <= termino.getTimeInMillis())), talvez nao seja o mais correto, mas ate ai tudo bem, e no final do while eu adiciono um dia no calendar inicio (inicio.add(Calendar.DATE, 1)).
Antes de chegar na condição do while eu zero hora, minuto, segundo e milissegundo de inicio e termino.
Aqui é que vem a bizarrice, quando é adicionado um dia, passando do dia 12/10/2016 para 13/10/2016, é adicionado também 1 hora a mais, passando de 12/10/2016 00:00:00.000 para 13/10/2016 01:00:00.000
Não consigo entender o porque disso, imagino eu que seja por conta das 6 horas a mais de cada ano, mas não achei nada que confirmasse ou não isso, e também não encontrei nada que me explicasse essa 1 hora.
Alguém saberia me explicar?