Olá pessoa!
Há alguns dias eu postei um tópico aqui pedindo pra calcular a diferença entre datas em dias, ou seja, informo a data 01/01/1900 como data inicial e quero saber quantos dias rolaram até hj.
O tópico foi respondido, mas estou encontrando problemas aqui no meu trampo por causa de um bug.
public class Calendario {
private static final GregorianCalendar FIRST_DAY = new GregorianCalendar(2009, 6, 30, 0, 0, 0);
public static int getDays(int ano, int mes, int dia) {
GregorianCalendar data = new GregorianCalendar(ano, mes, dia, 0, 0, 0);
int elapsed = 0;
GregorianCalendar g1 = FIRST_DAY;
GregorianCalendar gc1, gc2;
if (data.after(g1)) {
gc2 = (GregorianCalendar) data.clone();
gc1 = (GregorianCalendar) g1.clone();
} else {
gc2 = (GregorianCalendar) g1.clone();
gc1 = (GregorianCalendar) data.clone();
}
gc1.clear(Calendar.MILLISECOND);
gc1.clear(Calendar.SECOND);
gc1.clear(Calendar.MINUTE);
gc1.clear(Calendar.HOUR_OF_DAY);
gc2.clear(Calendar.MILLISECOND);
gc2.clear(Calendar.SECOND);
gc2.clear(Calendar.MINUTE);
gc2.clear(Calendar.HOUR_OF_DAY);
while (gc1.before(gc2)) {
gc1.add(Calendar.DATE, 1);
elapsed++;
}
return elapsed;
}
public static void main(String[] args) {
System.out.println(getDays(2009, 7, 1));
}
}
Não sei qual é o problema. Tenho certeza que não é meu código, pois testei vários códigos deste site: [url]http://www.java2s.com/Code/Java/Development-Class/Calendar-Date.htm[/url] e não dá certo.
Existe alguma maneira de contornar esta situação?
Obrigada
