Dúvida com teste entre tipos Time [ Resolvido]

3 respostas
F

Pessoal, estou tentando comparar se ha interseção entre dois horários , tipo Time
com os métodos after e before , da seguinte maneira:

public boolean haIntersecao(GradeHorarios outro) {

	if( this.horafim.after(outro.horainicio) && this.horainicio.before(outro.horafim) && (this.diadasemana == outro.diadasemana) )
		return true;

	if ( outro.horafim.after(this.horainicio) && outro.horainicio.before(this.horafim) && (this.diadasemana==outro.diadasemana) )
		return true;
		
	return false;
}
onde GradeHorarios tem as propriedades:
private Time horainicio;
	private Time horafim;

Mas nunca acusa interseção. Alguem pode me dar uma dica pq não funfa esse teste ?

Agradeço qquer ajuda
[]´s a todos

3 Respostas

danieldomingues86

Olá,

A melhor forma de fazer esse tipo de comparação que voce quer é usando objetos Date com os métodos before() e after() , ou então usando Strings usando o compareTO.

Falou.

G

Time você quer dizer java.sql.Time? Caso afirmativo olhe essa classe. Ela retorna true, pois t1 está entre t0 e t2.

public static void main(String[] args) {
    Time t0 = new Time(0);
    Time t1 = new Time(1);
    Time t2 = new Time(2);

    System.out.println(t0.before(t1) && t2.after(t1));
}

Aparentemente seu código deveria funcionar. Para fazer um teste remova a comparação com dias da semana, creio que pode ser alí o erro. E também aconselho um debug para entender o que está retornando na comparação.

F

Valeu as dicas pessoal.

Garcia-jj , realmente era isso. Eu estava comparando o diadasemana de maneira errada.

Vlws pessoal

Grande abraço.

Criado 13 de dezembro de 2009
Ultima resposta 13 de dez. de 2009
Respostas 3
Participantes 3