Cálculo de horas com o oracle.jbo.domain.date

1 resposta
juniovitor

Pessoal, bom dia!

Estou com um problema ao fazer um cálculo de horas utilizando oracle.jbo.domain.date. Veja abaixo o código:

//GetValues - Horas
        Date horaInicial = (Date)totline.getAllRowsInRange()[0].getAttribute("TimHoraInicial");
        Date horaFinal = (Date)totline.getAllRowsInRange()[0].getAttribute("TimHoraFinal");
        
        //long
        long hInicial = horaInicial.getValue().getTime();
        long hFinal = horaFinal.getValue().getTime();
        
        //Fazendo cálculo
        long totalHorasLine = hFinal - hInicial;
        
        //Tranformando para Date novamente.      
        Date difDate = new Date(new java.sql.Timestamp(totalHorasLine));

No final eu não tenho um resultado correto, ele me retorna uma data inválida, veja:

//Horas
      Date horaInicial = 2009-03-19 08:00:00.0
      Date horaFinal   = 2009-03-19 11:07:37.0
      
      //Long
      1237460400000
      1237471657000

      //Long - Resultado
      11257000

      //Date - Resultado
      1970-01-01 00:07:37.0 - ///ERRADO


      //----------------------------------------------------------------------------------------------------------
      //Eu preciso que o resultado seja a diferença entre (horaFinal - horaInicial), e neste
      //caso nao esta funcionando! ESTÁ DANDO UMA DIFERENCA DE 3 HORAS
      //-----------------------------------------------------------------------------------------------------------

Aguardo!

1 Resposta

T

Uma diferença entre dois instantes em ms não pode ser convertida para um java.util.Date, para você conseguir o número de horas. Em vez disso, você tem de fazer contas (1 hora = 60 minutos = 3600 segundos etc.), ou então usar algo como o Joda-Time e entender o conceito de Period e Interval.

Criado 19 de março de 2009
Ultima resposta 19 de mar. de 2009
Respostas 1
Participantes 2