Ir para conteúdo
  • 0

Trabalhando com horas e minutos


jooelcosta
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Alunos

Pessoal, boa tarde. Novamente por aqui 😅

 

Analisando a transformação que fiz me deparei com a seguinte situação. Analisando as horas lançadas por placa um estranho resultado foi notado.

Só vim perceber quando tentei fazer umas alterações para poder trabalhar com essas horas em gráficos.

Resultado:

image.png.8f270fb2443c542662d3e30efdded6c1.png

 

A medida TotalHoras:

image.png.68d49214102200d1e98b7476e0c4a375.png

A medida QtdHoras:

image.png.1f41e2b328320e1e87cc5ba15046699d.png

A coluna está no formato decimal:

image.png.3b9ffd8d8cfa0df3f0bb0ea014a648de.png

 

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
new_totalHoras = 
    VAR vHorasDecimal = [new_qtdHoras]
    VAR vHoras = INT(vHorasDecimal)
    VAR vMinutosDecimal = 60 * (vHorasDecimal - vHoras)
    VAR vMinutos = INT(vMinutosDecimal)
    VAR vSegundos = ROUND ( 60 * (vMinutosDecimal - vMinutos), 0 )
    VAR vHH = FORMAT(vHoras, "00")
    VAR vMM = FORMAT(vMinutos, "00")
    VAR vSS = FORMAT(vSegundos, "00")
RETURN
    VALUE(vHH&vMM&vSS)

 

ex.pbix

  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Tente algo assim

Soma Horas (hh:mm:ss) = 
VAR vHorasDecimal = [Soma Horas Decimal]
VAR vHoras = INT(vHorasDecimal)
VAR vMinutosDecimal = 60 * (vHorasDecimal - vHoras)
VAR vMinutos = INT(vMinutosDecimal)
VAR vSegundos = ROUND ( 60 * (vMinutosDecimal - vMinutos), 0 )
VAR vHH = FORMAT(vHoras, "00")
VAR vMM = FORMAT(vMinutos, "00")
VAR vSS = FORMAT(vSegundos, "00")
RETURN
VALUE(vHH&vMM&vSS)

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Tem alguma pista do que possa está acontecendo?

Tentei do jeito solicitado e o erro abaixo foi apresentado:

image.png.1cad583be4942765a5dabad07d0f8ea9.png

27 minutos atrás, Bruno Abdalla de Souza disse:

Tente algo assim

Soma Horas (hh:mm:ss) = 
VAR vHorasDecimal = [Soma Horas Decimal]
VAR vHoras = INT(vHorasDecimal)
VAR vMinutosDecimal = 60 * (vHorasDecimal - vHoras)
VAR vMinutos = INT(vMinutosDecimal)
VAR vSegundos = ROUND ( 60 * (vMinutosDecimal - vMinutos), 0 )
VAR vHH = FORMAT(vHoras, "00")
VAR vMM = FORMAT(vMinutos, "00")
VAR vSS = FORMAT(vSegundos, "00")
RETURN
VALUE(vHH&vMM&vSS)

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
21 horas atrás, Bruno Abdalla de Souza disse:
new_totalHoras = 
    VAR vHorasDecimal = [new_qtdHoras]
    VAR vHoras = INT(vHorasDecimal)
    VAR vMinutosDecimal = 60 * (vHorasDecimal - vHoras)
    VAR vMinutos = INT(vMinutosDecimal)
    VAR vSegundos = ROUND ( 60 * (vMinutosDecimal - vMinutos), 0 )
    VAR vHH = FORMAT(vHoras, "00")
    VAR vMM = FORMAT(vMinutos, "00")
    VAR vSS = FORMAT(vSegundos, "00")
RETURN
    VALUE(vHH&vMM&vSS)

 

ex.pbix 644 kB · 0 downloads

Bom dia.

Aparentemente tudo certo, Bruno.

Só tive que aplicar um arredondamento na vMinutosDecimal pois,  um veiculo que era para mostrar o valor 02:00 estava mostrando  -63:54:89.

Ficou dessa maneira:

new_totalHoras = 
    VAR vHorasDecimal = [new_qtdHoras]
    VAR vHoras = INT(vHorasDecimal)
    VAR vMinutosDecimal = ROUND(60 * (vHorasDecimal - vHoras),6)
    VAR vMinutos = INT(vMinutosDecimal)
    VAR vSegundos = ROUND ( 60 * (vMinutosDecimal - vMinutos), 0 )
    VAR vHH = FORMAT(vHoras, "00")
    VAR vMM = FORMAT(vMinutos, "00")
    VAR vSS = FORMAT(vSegundos, "00")
RETURN
    VALUE(vHH&vMM&vSS)

 

Obrigado pela ajuda.

 

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...