Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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...
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.
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.
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).
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 ??
Para ter a quantidade exata de meses, utilize a seguinte conta:
([Ano Final] - [Ano Inicial]) * 12 + ([Mes Final] - [Mes Inicial]) + 1
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..
retire o +1 da fórmula.
Vinicius,
=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
Seria isto?
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)' )