fbpx

Como Criar medida que apresente Dias, Horas, Minutos e Segundos.

Como vocês sabem, na #Dataside amamos compartilhar conhecimento, então o Rafael Bezerra escreveu um artigo especial para explicar melhor sobre como criar medida que apresente Dias, Horas, Minutos e Segundos. Boa leitura!

Olá Gente, há algum tempo tive a necessidade de desenvolver uma medida que apresentasse Dias, Horas, Minutos e Segundos. Quando concluí, achei interessante compartilhar tal conhecimento com vocês!

Então, vamos estudar como criá-la?

  1. Para não estender muito essa postagem, já trago o cálculo de horas em formato decimal.

Nossa coluna explorada foi a [Tempo Dec]

2. No nosso exemplo, a Medida criada para apresentar somente horas reflete um total de:

3. Vamos a Prática!

Precisei adaptar a lógica e extrair os dias, transformando a apresentação da informação do seguinte modo:

A Medida foi desenvolvida por meio de variáveis e, possui 05 blocos de desenvolvimento, vamos comentá-los:

Bloco 1: Extrair o inteiro da hora que está em formato [Tempo Decimal].

 VAR Vl = SUM ( fDados[Tempo Dec] )
• realizando a soma total do tempo

VAR vHr = INT(Vl)

  • reservando apenas o inteiro da soma do tempo, que é a “hora”

Com a Variável vHr tempos o total de Horas

       Bloco 2: Extrair os Segundos de Horas da diferença decimal do tempo [Vl] e calcular os Minutos e Segundos,               posteriormente obter o total em horas

 

VAR vSegHora = (Vl-vHr)*3600

  • Reservamos a diferença decimal do tempo [Vl] e o inteiro da hora [vHr] e depois multiplicar por 3600 segundos que equivale a 1 hora.

VAR vMinDec = Divide(vSegHora,60)

  • Como já temos a hora em segundos, precisamos extrair os minutos. Portanto, dividimos por 60, pois 01 hora possui 60 minutos.

VAR vMin = INT(vMinDec)

  • Agora que já temos os Minutos em modo decimal, precisamos reservar o inteiro dele, que será nosso minutos.

VAR vSegDec = (vMinDec-vMin)*60

  • Nesse cálculo, vamos obter a diferença dos minutos decimais e o seu inteiro para extrair os segundos.

VAR vSeg = ROUND ( vSegDec, 0 )

  • Por último, vamos reservar o arredondamento dos Segundos da nossa

      Com o bloco 1 e bloco 2 temos o total de horas

 

Bloco 3: Nesse bloco, iremos calcular os dias

VAR vDiasDec = DIVIDE(vHr,24)

  • Para obter os dias, chamamos a variável [vHr], construída no bloco 1, que são as horas por inteiro e dividimos por 24, que é o total de horas em um dia.

 

VAR dd = IF(vHr>=24, INT(vDiasDec), 0)

  • Usamos o a Função IF, para extrair os dias inteiros, onde:
  • Se vHr>=24, termos 1 dia ou mais. Então, extrairmos os dias com função [INT(vDiasDec)]
  • Se não for, significa que é menor que 24 horas. Então, significa que não haverá dias somente horas, portanto pedimos que retorne 0.

 

 Essa variável é o pulo do Gato!

       Bloco 4: Nesse bloco, iremos calcular as Horas.

VAR hh = INT((vDiasDec-dd)*24)

  • Vamos calcular a nossa hora, pegando o inteiro da diferença de [vDiasDec] pelo resultado da variavel [dd] multiplicando 24 horas.

      Bloco 5: Chegamos no Final, já temos todos os cálculos necessário.

E Rafael, o que é preciso agora?

Agora, vamos arrumar esses cálculos para eles se apresentarem bonitinhos no visual.

  • Para evitar, que nossa medida retorne apenas [1] dígito em cada cálculo, criaremos variáveis para melhorar a visualização.
    A função [LEN] pesquisará os cálculos. Se a variável contiver [1] dígito, será adicionado a ela um “0” a esquerda, caso contrário, queremos apenas a própria variável.

VAR vDD = IF ( LEN ( dd ) = 1, “0” & dd, dd )

VAR vHH = IF ( LEN ( hh ) = 1, “0” & hh, hh )

VAR vMM = IF ( LEN ( vMin ) = 1, “0” & vMin, vMin )

VAR vSS = IF ( LEN ( vSeg ) = 1, “0” & vSeg, vSeg )

 

  • Vamos criar nossa variável Sucesso?

Fácil!
Precisamos apenas concatenar as variáveis e convertê-las para inteiro.

VAR TMP = CONVERT ( vDD & vHH & vMM & vSS, INTEGER  )

  • Pronto!
    Agora basta chamá-la

RETURN

TMP

E Agora, Rafael?

Simples, basta alterarmos o formato da medida para apresentar os Dias, Horas, Minutos e Segundos e posteriormente incluir no visual.

 

Espero que esse conteúdo tenha te ajudado. Se você gostou, deixe o like e compartilhe. 🙂

Compartilhar no facebook
Compartilhar no twitter
Compartilhar no linkedin
Compartilhar no whatsapp
Compartilhar no email

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts recentes

Segurança da informação

Existe um conjunto de modelos, leis e boas práticas que fazem parte do que chamamos de Segurança da Informação. Cada uma delas precisa fazer parte

Leia mais »