Comparando datas e pegando a diferença em dias

E ae comunidade

Alguem sabe como compara datas! por favor... estou tendo problemas... cheguei até aqui ! 

Calendar calendar = GregorianCalendar.getInstance(TimeZone.getTimeZone(“GMT-03:00”), new Locale(“pr”,“BR”));
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“dd/mm/yyyy”);
calendar.setTime(simpleDateFormat.parse(“01/01/2005”));

eu preciso pegar a diferença em dia de duas datas ! por exemplo

01/01/2005 - 02/01/2005 = 1 dia
01/01/2005 - 03/01/2005 = 2 dia

//criando uma interface Calendar, instanciando com GregorianCalendar
Calendar calendar = new GregorianCalendar();

//setando a data (axo que eh setTime msm…)
calendar.setTime(2005,03,02);

//pegando o numero do dia no ano (10 de janeiro = 10)
int dia1 = cal.get(Calendar.DAY_OF_YEAR);
calendar.setTime(2005,03,03);
int dia2 = cal.get(Calendar.DAY_OF_YEAR);

dia2-dia1 >> 1!

acho que isso vai resolver… mas só para datas no mesmo ano!!!
se os anos forem diverente, você pode fazer por etapas, tipo:

20/dez/2004 >> 10/jan/2005

faz de 20/dez ate dia 31/dez, e de 1/jan ate 10/jan

[]`s

Ohhh cara… valeu… acho que deu certo… so estou meio encudo com ano
bisesto… Da uma olha e ve se vale fazer dessa forma !

private Locale locale;
private TimeZone timeZone;
protected final String DATABASE = “07/10/1997”; //data base para calculo do fator de vencimento
protected int calculaFatorVencimento(String argDataVencimento){
String dataInicial[] = DATABASE.split("/");
String dataVencimento[] = argDataVencimento.split("/");

	int anoVenc = Integer.parseInt(dataVencimento[2]);
	int anoIni  = Integer.parseInt(dataInicial[2]);
	
	Calendar calendar = GregorianCalendar.getInstance(timeZone,locale);
	calendar.set(anoIni,
				 Integer.parseInt(dataInicial[1]),
				 Integer.parseInt(dataInicial[0]));
	int diaInicial = calendar.get(Calendar.DAY_OF_YEAR);
	
	calendar.set(anoVenc,
				 Integer.parseInt(dataVencimento[1]),
				 Integer.parseInt(dataVencimento[0])); 
	int diaVencimento = calendar.get(Calendar.DAY_OF_YEAR);
	
	return (diaVencimento - diaInicial) + ((anoVenc - anoIni) * 365);
	
}

public static void main(String args[]){
  System.out.println(new Teste().calculaFatorVencimento("05/07/2000"));
}

Ohhh comunidade… tudo beleza.
Andei tendo problemas com datas… realmente é meio complicado trabalhar com datas em java ! Acho que consegui resolver o problema com a ajuda de vcs… mas será que realmente precisa fazer tudo isso ?
Por favor… olhem o codigo abaixo e me dizem oque vcs acham.

public class Time {

private final String DATABASE = "07/10/1997"; //data base para calculo do fator de vencimento
private final TimeZone timeZone = TimeZone.getTimeZone("America/Los_Angeles");
private final Locale locale = new Locale("pr","BR");

/**
 * Um ano é bissexto se for divisivel por 4 mas nao divisivel por 100,
 * exceto pelos anos divisiveis por 400, que sao bissextos.
 * @param argDataInicial
 * @param argDataFinal
 */
private final int isAnoBissexto(int ano){
	if ((ano%4==0 && ano%100 !=0) || ano%400==0)
		return 1;
	return 0;
}

 
protected int calculaFatorVencimento(String argDataVencimento){ 
String dataInicial[] = DATABASE.split("/"); 
String dataVencimento[] = argDataVencimento.split("/"); 

int anoVenc = Integer.parseInt(dataVencimento[2]); 
int anoIni = Integer.parseInt(dataInicial[2]); 

Calendar calendar = GregorianCalendar.getInstance(timeZone,locale); 
calendar.set(anoIni, 
Integer.parseInt(dataInicial[1]), 
Integer.parseInt(dataInicial[0])); 
int diaInicial = calendar.get(Calendar.DAY_OF_YEAR); 

calendar.set(anoVenc, 
Integer.parseInt(dataVencimento[1]), 
Integer.parseInt(dataVencimento[0])); 
int diaVencimento = calendar.get(Calendar.DAY_OF_YEAR);

int anoBissexto = 0;
while( anoIni < anoVenc)
	anoBissexto+=isAnoBissexto(anoIni++);

return (diaVencimento - diaInicial) + ((anoVenc - anoIni) * 365) + anoBissexto; 

} 

public static void main(String args[]){ 
	System.out.println(new Time().calculaFatorVencimento("05/07/2000")); 
}

}

como faco para comparar duas datas ???

a inicial vou digitar num textfield e a final em outro textfield ???

Aqui

T+

ok

obrigado