nao conheco nenhum metodo que faça o que voce pediu, aconselho fazer um metodo que calcule isso, mas jah usei um metodo que, para minha aplicacao, se mostrou util, embora nao seja totalmente exato:
long diferenca = data1.getTimeInMillis() - data2.getTimeInMillis();
diferenca /= 1000; //data em segundos
diferenca /= 60; //data em minutos
diferenca /= 60; //data em horas
diferenca /= 24; //data em dias
diferenca /= 30; //data em meses
diferenca /= 12; //data em anos
[quote]
se subtrair só os anos ele dá-me 5 anos mas está errado, devia dar 4![/quote]
Não é ele que tá errado, é sua lógica que tá errada!
Olha só, vc tá subtraindo 2000 de 2005, o resultado tem é que ser 5 mesmo. Se for 4 aí é que tá errado
O negócio é que depois que vc fizer isso vc ia ter que descontar o mês e dia.
Por exemplo, nesse caso se vc subtrair o ano vc tem +5, se subtrair o mes vc tem 0, e se subtrair o dia vc tem -3, ou seja, vc tem que somar 0 meses aos 5 anos e somar -3 dias aos 5 anos…
Mas é mais fácil fazer do jeito que o javaAdicted disse…