Sto sbattendo la testa da giorni...Grazie...

Se considero anche un orario di fine devo verificare se ci sono almeno 4 ore... la verifica si può fare anche sui millisecondi?

Nel caso si verifica che sono 4 faccio un ulteriore passo...verifico se ci sono almeno 8 ore per pagare una diaria.

codice:
Date d1 = null;
codice:
Date d2 = null;

d1 = sdf.parse(d);
d2 = sdf.parse(f);

//in milliseconds
long diff = d2.getTime() - d1.getTime();

if(diff >= 14400000){
   //14400000 sono proprio 4 ore
   if(diff >= 28800000){
   //28800000 sono proprio 8 ore pago daria notturna
   }

}