Ae galera estou com o seguinte problema.
Como que consigo acertar essa diferenca entre Data.
tipo:
Se eu fizer…
Calendar dBase = new GregorianCalendar(2000,06,03);
Calendar venc = new GregorianCalendar(2001,11,31);
Integer dias = diferencaEntreDate(venc.getTime(),dBase.getTime());
int base = 1000 + dias.intValue();
System.out.println("Dias: "+resultado);
Resposta: 1545
diferencaEntreDate(Date x, Date y)
public static Integer diferencaEntreDate(Date data1, Date data2) {
Locale locale = new Locale("pt_BR");
TimeZone zona = TimeZone.getTimeZone("GMT-3");
Calendar d1 = Calendar.getInstance(zona,locale);
Calendar d2 = Calendar.getInstance(zona,locale);
d1.setTime(data1);
d2.setTime(data2);
int dia = (int) ((d1.getTimeInMillis() - d2.getTimeInMillis())/(24*60*60*1000));
return new Integer(dia);
[color=red]Mais se eu fizer !!![/color]
main
Calendar dBase = new GregorianCalendar(2000,06,03);
Calendar venc = new GregorianCalendar(2001,11,31);
Integer dias = diferencaEntreCalendar(venc,dBase);
int resultado = dias.intValue() + 1000;
System.out.println("Dias: "+resultado);
Resultado da 1546 ( que segundo a documentacao de algo que to fazendo aqui é o correto! )
[/b] diferencaEntreCalendar(Calendar x, Calendar y)
public static Integer diferencaEntreCalendar(Calendar calendar1, Calendar calendar2) {
TimeZone zona = TimeZone.getTimeZone("GMT-3");
Locale locale = new Locale("pt_BR");
calendar1.setTimeZone(zona);
calendar2.setTimeZone(zona);
int dia = (int) ((calendar1.getTimeInMillis() - calendar2.getTimeInMillis())/(24*60*60*1000));
return new Integer(dia);
}
O que posso fazer para que eu mande tanto Date como Calendar e ele me der um resultado consistente.
pelo que eu vi ele se altera depois que eu faco um Calendar.siteTime(Date).