Java non ha nulla di pre-confezionato per effettuare questa operazione. Quindi hai due scelte:

1) Farla a mano (non è complicato)
2) Usare una libreria di terze parti (come Joda Time), che ha già incorporato tutto il necessario.

Soluzione 1:

codice:
private static long differenza(Date d1, Date d2) {
   return (d1.getTime() - d2.getTime()) / 86400000L;
}

Il metodo (statico) si aspetta come primo parametro la data più recente e come secondo parametro la data più vecchia. Se vengono passate in ordine inverso, chiaramente, il risultato sarà negativo.

A te documentarti sulla classe java.util.Date e capire cosa faccia in soldoni quell'espressione matematica.


Ciao.