fabiogm  
          
              
                Dezembro 13, 2009, 11:03am
               
              #1 
           
         
        
          Pessoal, estou tentando comparar se ha interseção entre dois horários , tipo Time
[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;
}
	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
         
        
           
         
            
       
      
        
        
          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) {
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.