Como calcular horas para saber quanto tempo eu fiquei em determinado lugar

Digamos que eu entrei em um hotel as 09:30:15hrs e agora já são 10:37:14hrs. Como eu faço esse calculo no java para saber quanto tempo eu permaneci nesse hotel até o presente momento?

               GregorianCalendar hora = new GregorianCalendar();
                hora.setTime(Time.valueOf(f.format(hora.getTimeInMillis()))); //Pego a hora do sistema
                //Logo à baixo eu subtraio as horas da chega em cima da hora atual
                hora.add(Calendar.HOUR, -he); //he == hora de chegada no estabelecimento
                hora.add(Calendar.MINUTE, -me); //me == minutos da chegada no estabelecimento
                hora.add(Calendar.SECOND, -se); //se == segundos da chegada no estabelecimento
                // Mas desta forma ele não me retorna o calculo correto
           
                //Logo abaixo é o código que faz o cronometro de quanto tempo a pessoa pode permanecer no 
                //local, mas para ele funcionar eu preciso saber quanto tempo a pessoa já ficou estabelecida
                
                GregorianCalendar cr = new GregorianCalendar();
                cr.setTime(Time.valueOf(h + ":" + m + ":" + s));
                cr.add(Calendar.HOUR, -(Integer.parseInt(f.format(hora.getTime()).substring(1, 2))));
                cr.add(Calendar.MINUTE, -(Integer.parseInt(f.format(hora.getTime()).substring(4, 5))));
                cr.add(Calendar.SECOND, -(Integer.parseInt(f.format(hora.getTime()).substring(7, 8)))); 
                //
                do {
                    cr.add(Calendar.SECOND, -1);
                    //
                    s1 = f.format(cr.getTime());
                    //
                    lbConometro.setText(f.format(cr.getTime()));
                    try {
                        //
                        Thread.sleep(1000);
                    } catch (InterruptedException ex) {
                        JOptionPane.showMessageDialog(null, "Erro no Thread.sleep()" + ex);
                    }
                } while (!s1.equals("00:00:00") && crono == true);

Alguém tem alguma ideia de como devo proceder?

Digamos que tenha 2 Date (calendar tbm serve) ele se baseia em um long q são milissegundos, aí:
long dif = dateFim.getTime() - dateIni.getTime();//a diferença entre eles é em milissegundos
Agora é só converter os milissegundos, divida por mil e terá segundos, por 60 e terá minutos…