Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
viniciusroteli
Contributor III
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...

12 Replies
nicolett_yuri

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
Contributor III
Contributor III
Author

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.

Marcio_Campestrini
Specialist
Specialist

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
Contributor III
Contributor III
Author

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 ??

nicolett_yuri

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

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

viniciusroteli
Contributor III
Contributor III
Author

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..

nicolett_yuri

retire o +1 da fórmula.

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

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?

furtado@farolbi.com.br
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

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

furtado@farolbi.com.br