Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
viniciusroteli
New Contributor III

Calcular Tempo de Serviço !!

Bom dia !!!

Tenho as Datas de Admissão e com a data do Dia Gostaria de calcular quanto tempo de serviço tem o Funcionário na Empresa, em ano e mês, Ex: Data de Admissão 15/08/2011 e data de Hoje 06/09/2016, ele tem 5 Anos, 0 Meses.

Atenciosamente...

Tags (1)
11 Replies

Re: Calcular Tempo de Serviço !!

Vinicius, você pode fazer a subtração das datas e utilizar a função Interval para formatar o campo, por exemplo:

Mostrar resultado em dias: Interval(Today()-[Data de Admissão], 'DD')

Sabendo o resultado em dias, basta converter para a quantidade de meses ou anos.

viniciusroteli
New Contributor III

Re: Calcular Tempo de Serviço !!

Yuri,

Para o Ano eu fiz floor(Interval(Today()-VDATAADM, 'DD')/365) para pegar a Qtde de Anos, nesse caso 5 está OK,

     e para os meses fiz floor(Interval(Today()-VDATAADM, 'DD')/30)-(Floor(Interval(Today()-VDATAADM, 'DD')/365)*12) tiro do total de meses menos a aqtde de anos Inteiros, mas acabou dando 1 mês sendo que deveria ser 0, pois ainda não é dia 15.

MCampestrini
Valued Contributor

Re: Calcular Tempo de Serviço !!

Bom dia Vinicius

E se você subtrair 1 do resultado? Se não me falha a memória, a tendência é que a função Interval retorne sempre 1 a mais (considere troca de meses como 1).

Márcio Rodrigo Campestrini
viniciusroteli
New Contributor III

Re: Calcular Tempo de Serviço !!

Entendi,

Acabei alterando a segunda parte assim

floor(

(Interval(Today()-VDATAADM, 'DD')/365-

floor(Interval(Today()-VDATAADM, 'DD')/365))*365/30) e aí deu certo tanto pra uma data de admissão de 15/08/2011 5 anos e 0 mês como para uma 05/08/2011 5 anos e 1 mês.

Estaria correto esse cálculo ??

Re: Calcular Tempo de Serviço !!

Para ter a quantidade exata de meses, utilize a seguinte conta:

([Ano Final] - [Ano Inicial]) * 12 + ([Mes Final] - [Mes Inicial]) + 1

viniciusroteli
New Contributor III

Re: Calcular Tempo de Serviço !!

Yuri,

Mas nesse caso meu com a Data de 15/08/2011 resulta em 62 meses, porém para considerar 62 meses, hoje ainda é dia 09, seriam 61 meses completos e meio..

Re: Calcular Tempo de Serviço !!

retire o +1 da fórmula.

MVP
MVP

Re: Calcular Tempo de Serviço !!

Vinicius,

2016-09-07 10_29_14.jpg

=floor((today() - date(date#(15082011,'DDMMYYYY')))/365) & ' Anos '

&

floor(Frac((today() - date(date#(15082011,'DDMMYYYY')))/365) *12) & ' Meses '

&

FLOOR(FRAC(Frac((today() - date(date#(15082011,'DDMMYYYY')))/365) *12)*24) & ' Dias'

Se fosse o dia 01/08/2011 o resultado seria

2016-09-07 10_30_06.jpg

Seria isto?

MVP
MVP

Re: Calcular Tempo de Serviço !!

Uma versão com controle de mostrar ou não...

=if(floor((today() - date(date#(15082011,'DDMMYYYY')))/365)>0,

    floor((today() - date(date#(15082011,'DDMMYYYY')))/365) & ' Ano(s) ' )

&

if(floor(Frac((today() - date(date#(15082011,'DDMMYYYY')))/365) *12)>0,

    floor(Frac((today() - date(date#(15082011,'DDMMYYYY')))/365) *12) & ' Mes(es) ')

&

if(FLOOR(FRAC(Frac((today() - date(date#(15082011,'DDMMYYYY')))/365) *12)*24)>0,

    FLOOR(FRAC(Frac((today() - date(date#(15082011,'DDMMYYYY')))/365) *12)*24) & ' Dia(s)' )

2016-09-07 10_35_16.jpg