Datas - "Between" no java

Estou precisando fazer no java algo como o “between” do SQL, so que no java, nao preciso saber a diferenca entre as datas, preciso apenas saber se uma determinada data esta entre outras duas.
Alguem sabe como fazer isso?

Date.after(Date) e Date.before(Date).

Between:


Date d = new Date();
if (d.after(outraData) && d.before(maisOutraData)) {

...

}

Usando uma variavel do tipo date, só comparar se a primeira vem antes da data que vc quer compara e se a segunda vem depois. Acho que é isso.

if(data1.after(dataCompara) && data2.before(dataCompara)) flag = true; else flag = false;

só complementando:

 flag = data1.after(dataCompara) && data1.before(dataCompara);

edit: nome da variavel corrigido

Vê se isso pode ajudar:
sendo d1 e d2 dois objetos do tipo java.util.Date

d1.before(d2);  //retorna true se d1 estiver antes de d2
d1.after(d2);     //retorna true se d1 estiver depois de d2

[quote=andre.almeida]só complementando:

 flag = data1.after(dataCompara) && data2.before(dataCompara);

cuidado.
Se o intervalo é entre A e B e a data a pesquisar é D
D está no intervalo se D >=A e D<=B ou, o que é o mesmo, se A <= D e B>=D
portanto o correto seria:

 flag = D.after(A) && D.before(B);

ou

 flag = A.before(D) && B.after(D);

ou seja, a sua ordem está trocada.

Mas o mais importante é que after e before não funcionam quando D =A ou D=B

a forma correta de fazer é usando a comparação matemática

public boolea isInInterval(Date D, Date A, Date B){
 return D.compareTo(A) >=0  && D.compareTo(B)<=0;
}

violei a nomnclatura para ficar certo com o que escrevi antes.
A parte mais importante aqui é sempre colocar dentro de um método.

[quote=andre.almeida]só complementando:

 flag = data1.after(dataCompara) && data2.before(dataCompara);

Diria eu que se você comparar uma data sempre com uma data igual, esta comparação nunca vai ser “true”.

Tipo assim:

flag = 1 >2 && 1 < 2;

(…)

editei o nome da variavel (y)

Existe a biblioteca Joda Time:http://joda-time.sourceforge.net/.
Facilita bastante trabalhar com Java, ela tem a classe Interval atraves dela
é possível ver se um determinada intervalo de tempo contém uma data.

                                Date inicio=new Date();
		Date fim=new Date();
		Interval intervalo=new Interval(inicio.getTime(),fim.getTime());
		if((intervalo.contains(suaData.getTime())
				return true;
		else
			    return false;