[RESOLVIDO] Como medir o tempo em que um método parou de ser executado até quando ele é chamado novamente

5 respostas Resolvido
java
J
Ola eu tenho um problema que acho complicado de resolver mas para resumir tenho esse código

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

SwingWorker worker = new SwingWorker() {

protected Void doInBackground() throws Exception {
}
}

}
esse código é um método de um botao, e ele contem uma trhead dentro dele para verificar a temperatura de um sensor durante um periodo de tempo, quando esse método termina eu preciso registrar em qual segundo ele parou ,e depois quando ele voltar eu preciso saber quanto tempo ele ficou sem ser executado para registrar o momento correto que a temperatura estara sendo registrada no vetor

5 Respostas

brizola727

Da pra vc guardar o valor da hora do término do método, guarda ele em um campo de tabela (hora inicio por exemplo).
Quando ele voltar a rodar você seta o valor de novo que ele começou a rodar de novo em outro campo de tabela(hora reinicio por exemplo). Tudo isso vinculado a um numero de sensor ou numero de método, digo isso pq vc vai ter esse metodo rodando mais de uma vez por dia ou por horas, então seria necessário amarrar esse vinculo de hora inicio - hora reinicio a algum id para identificar o intervalo entende?
Faz a subtração de um valor pelo outro e pronto ta ai o seu valor…
Entendeu?

brizola727

Ahh pra pegar a hora vc pode usar algo assim:

Date hora = new Date();
hora.getTime();

isso tem bastante no google de como fazer ok!?

Se ajudei coloque a resposta como solução por favor!

Abrçs!

J

e como eu recupero a duração por exemplo : do horário que o método terminou ate o horário que o método e chamado novamente

Mike

O tempo retornado é em milissegundos, basta dividir por 1000 para ter o resultado em segundos

long tempoAntesDoMetodo = System.currentTimeMillis();
metodo();
long tempoDepoisMetodo = System.currentTimeMillis() - tempoAntesDoMetodo;
J
Solucao aceita

problema resolvido, o problema era que, para calcular a variação de tempo temos que usar a formula tempo_final - tempo_inicial, só que eu estava confundindo o tempo_final e o tempo_inicial, pois como eu queria saber o tempo que um método demorava para ser chamado eu confundi a variável que marcava o horário que o método finalizou como sendo a variável final e confundi a variável que marcava o horário que o método reiniciou como sendo a variável inicial sendo que o correto é o contrario. muito obrigado

Criado 18 de maio de 2018
Ultima resposta 18 de mai. de 2018
Respostas 5
Participantes 3