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?