Testes com Date/Calendar

Pessoal estou fazendo alguns testes com Date e Calendar, e me deparei com um probleminha
preciso por exemplo checar se o usuário tem mais de 18 anos, no caso ele já entrou a data, meu problema é só como fazer esse check (Utilizando os dias também!) ! tipo, se o cara nasceu em 1994 passa, mas se em 1999 não.

Outra coisa, é como comparar as datas, preciso passar um método apenas se a data de registro da operação, for não menos que 24hrs antes da data solicitada (como reservas em hotel)

Espero que tenha ficado claro.

Obrigado pela atenção.

Cara, se você está querendo evoluir no que diz respeito a cálculos com data, recomendo nem perder tempo com Date/Calendar e utilizar a biblioteca JodaTime, pelo que sei no Java 8 (ou 9, não tenho certeza) ela vai ser default.

Da pra fazer com Calendar? Sim, mas você vai ter problemas com cálculos de dias e o trabalho vai ser mais braçal e menos OO.

Tanto Date quanto Calendar possuem métodos que convertem a data especificada em um número que pode ser armazenado em um long.
Isso nos possibilita o seguinte.

public boolean maisQue18(Date dtNasc){
    Date dtAtual = new Date();
    long lDtAtual = dtAtual.getTime();
    long lDtNasc = dtNasc.getTime();
    long lIdade = (lDtAtual - lDtNasc);
 
   long segundos = lIdade / 1000;// o método getTime retorna o total de milissegundos de uma data
   long minutos = segundos/60;
   long horas = minutos/60;
   long dias = horas / 24;
   long anos = dias/365;
   return anos >= 18 ? true : false;
}

Assim você já descobre a diferença entre datas.
Entre dias, basta fazer o mesmo cálculo.

Ah, claro que existem formas mais adequadas, como o JodaTime.

Hm, obrigado, darei uma pesquisada em JodaTime, mas por enquanto creio que os métodos com long possam me ajudar.
assim que testar o novo algoritmo eu retorno aqui. Até breve.

tudo certo (: Obrigado.
agora estudarei esse JodaTime.
Tks.