Diferença de Horas

Olá a todos do Guj, este é o meu primeiro tópico, por isso me desculpem se eu jogar o código um de um jeito um pouco frustrante a todos.

Bem com relação ao meu problema, sou iniciante em java e sem dúvidas este é o melhor forum que eu achei para tirar minhas dúvidas, e eu tive um problema grande para fazer a Diferença entre horas e nao consegui usar o Joda-Time, eu preciso de um metodo que faça a diferença entre horas ex: metodo(String hora1, String hora2), e este metodo deve me retornar a diferença entre estes dois horarios Ex: metodo(“10:30”,“11:30”) e este me retorne a hora 1, fiz um MOG(MODO ORIENTADO A GAMBIARRA) grande e chato pa caramba eu consegui isso com StringTokenizer, deu certo, mas queria saber se algum de vocês que vierem me ajudar, me mostrar uma solução melhor e menos acanalhada.

eis a minha solução
:

 public void testeTokenizer(String tempo1, String tempo2)
    {
        StringTokenizer tokens = new StringTokenizer(tempo1,":");
        String tempo1Token1 = tokens.nextToken();
        String tempo1Token2 = tokens.nextToken();
        //
        int intTempo1Token1 = Integer.parseInt(tempo1Token1);
        int intTempo1Token2 = Integer.parseInt(tempo1Token2);
        //

        StringTokenizer token = new StringTokenizer(tempo2,":");
        String tempo2Token1 = token.nextToken();
        String tempo2Token2 = token.nextToken();
        //
        int intTempo2Token1 = Integer.parseInt(tempo2Token1);
        int intTempo2Token2 = Integer.parseInt(tempo2Token2);
        //
        
        setResultadoHora(intTempo2Token1 - intTempo1Token1);
        setResultadoMinuto(intTempo1Token2 - intTempo2Token2);

        int resultado;
        


        if((intTempo2Token2 - intTempo1Token2) < 0)
        {            
            int x = getResultadoHora() * 60;//transformando p minuto
            if(x <= 60)
            {                
                setResultadoHora(0);
                resultado = x - getResultadoMinuto();
                setResultadoMinuto(resultado);
                System.out.println("Resultado é : " + getResultadoHora() + ":" + getResultadoMinuto());
                resultante = (getResultadoHora()+":"+getResultadoMinuto());
                System.out.println("Imprimindo a resultante: " + resultante);

            }else
            {
                setResultadoHora((x-60)/60);
                setResultadoMinuto(intTempo1Token2 - intTempo2Token2);
                System.out.println("Resultado é : " + getResultadoHora() + ":" + getResultadoMinuto());
                resultante = (getResultadoHora()+":"+getResultadoMinuto());
                System.out.println("Imprimindo a resultante: " + resultante);
            }

        }

    }

abcs a todos.

Tinha uma coisa errada ai, desculpa, mas ainda ta de pé minha duvida

o codigo do jeito certo segue adiante.

public void testeTokenizer(String tempo1, String tempo2)
    {
        StringTokenizer tokens = new StringTokenizer(tempo1,":");
        String tempo1Token1 = tokens.nextToken();
        String tempo1Token2 = tokens.nextToken();
        //
        int intTempo1Token1 = Integer.parseInt(tempo1Token1);
        int intTempo1Token2 = Integer.parseInt(tempo1Token2);
        //

        StringTokenizer token = new StringTokenizer(tempo2,":");
        String tempo2Token1 = token.nextToken();
        String tempo2Token2 = token.nextToken();
        //
        int intTempo2Token1 = Integer.parseInt(tempo2Token1);
        int intTempo2Token2 = Integer.parseInt(tempo2Token2);
        //
        
        setResultadoHora(intTempo2Token1 - intTempo1Token1);
        setResultadoMinuto(intTempo2Token2 - intTempo1Token2);

        int resultado;
        
        if((intTempo2Token2 - intTempo1Token2) < 0)
        {            
            int x = getResultadoHora() * 60;//transformando p minuto
            if(x <= 60)
            {                
                setResultadoHora(0);
                resultado = x + getResultadoMinuto();
                setResultadoMinuto(resultado);
                System.out.println("Resultado é : " + getResultadoHora() + ":" + getResultadoMinuto());
                resultante = (getResultadoHora()+":"+getResultadoMinuto());
                System.out.println("Imprimindo a resultante: " + resultante);

            }else
            {
                setResultadoHora((x-60)/60);
                setResultadoMinuto(intTempo1Token2 - intTempo2Token2);
                System.out.println("Resultado é : " + getResultadoHora() + ":" + getResultadoMinuto());
                resultante = (getResultadoHora()+":"+getResultadoMinuto());
                System.out.println("Imprimindo a resultante: " + resultante);
            }

        }else
        {
            resultante=(getResultadoHora()+":"+getResultadoMinuto());
        }

    }

desde ja agradeço a ajuda.

Você não poderia receber 2 Objetos do tipo Date como parametro não? Ficaria mais facil.

Até poderia se soubesse, me da um exemplo, eu sei que o Date, tem o SimpleDateFormat, mas na hora de inserir eu preciso de calcular a diferença de horas, e eu não consegui de jeito nenhum isso usando Date, porque a diferença ai ta sendo feita por tokenizer, no passo: quebra a string, transformo em int, calculo, devolvo pra string, se conseguir em date seria muito bom pois o postgre tem tipo date la.

Poderia ser algo como isso que ti daria a diferença entre essas datas em millisegundos, então era so converter pra hora.

	void calculaData(Date dataInicio, Date dataFim){
		long diferencaMilli = dataFim.getTime() - dataInicio.getTime();
	}

Qual foi o problema com o Joda-Time? Vamos resolvê-lo!