fabiogm
Dezembro 13, 2009, 11:03am
#1
Pessoal, estou tentando comparar se ha interseção entre dois horários , tipo Time
com os métodos after e before , da seguinte maneira:
[code]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;
}
[/code]
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
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.
Time você quer dizer java.sql.Time? Caso afirmativo olhe essa classe. Ela retorna true, pois t1 está entre t0 e t2.
[code]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));
}[/code]
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.
fabiogm
Dezembro 13, 2009, 3:49pm
#4
Valeu as dicas pessoal.
Garcia-jj , realmente era isso. Eu estava comparando o diadasemana de maneira errada.
Vlws pessoal
Grande abraço.