Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia!
Tenho na figura 2 o script de cálculo da figura 1. O problema é que conforme visualizado nesta última o tempo de empresa aparece com x anos, 12 meses e x dias. Portanto o cálculo para, penso anos e meses está incorreto pois 12 meses se torna 1 ano e portanto o resultado deveria ser x anos, 0 meses e x dias. Onde aparecem 12 meses deveria ser 0 meses. Como resolver?
Valerio,
uma alternativa
LOAD
date(date#(Admitido,'DD/MM/YYYY')) as Admitido,
date(date#(Demitidos,'DD/MM/YYYY')) as Demitidos,
Demitidos - Admitido as Diferenca_Dias,
Floor((Demitidos - Admitido)/365.25) as Anos,
floor((Frac((Demitidos - Admitido)/365.25)*365.25)/30) as Meses,
floor(round(frac((Frac((Demitidos - Admitido)/365.25)*365.25)/30)*30,0.01)) as Dias;
LOAD * inline [
Admitido ,Demitidos
14/12/2015,14/12/2017
01/12/2016,14/12/2017
01/12/2010,14/12/2017
07/12/2015,13/12/2017
08/12/2017,12/12/2017
01/12/2017,12/12/2017
01/12/2017,11/12/2017
];
Alessandro, apliquei seu código e ainda assim continuo não obtendo o resultado correto. Veja o print anexo.
Este é seu código aplicado:
CDIFinal:
LOAD *,
DtDemitido.ComunicadoDispensa - DtAdmitido.ComunicadoDispensa as Diferenca_Dias,
Floor((DtDemitido.ComunicadoDispensa - DtAdmitido.ComunicadoDispensa)/365.25) as Anos,
floor((Frac((DtDemitido.ComunicadoDispensa - DtAdmitido.ComunicadoDispensa)/365.25)*365.25)/30) as Meses,
floor(round(frac((Frac((DtDemitido.ComunicadoDispensa - DtAdmitido.ComunicadoDispensa)/365.25)*365.25)/30)*30,0.01)) as Dias
Resident ComunicadoDispensa;
As datas são carregadas em formato inteiro (*1) e depois formatadas da seguinte forma na dimensão:
Date(DtDemitido.ComunicadoDispensa, 'DD/MM/YYYY') e a mesma coisa para DtAdmitido.
Dúvida: Porque 365.25?
Valério,
eu estava usando o 365.25 por causa do ano bissexto.
Mas, mudei o calculo e sendo franco, precisava que voce colocasse 3 conjuntos de datas e qual o resultado esperado.
Por que isto? Pois o calculo, se eu usar sites que calculam vão dar resultados diferentes e ao meu ver alguns ate errados (dependendo do ponto de vista...).....
Veja:
https://pt.calcuworld.com/calendarios/calculadora-de-tempo-entre-duas-datas/
https://www.timeanddate.com/date/durationresult.html
Neste caso, temos anos e meses iguais, mas diferença nos dias. um com 24 e o outro com 27. Qual o calculo dos dias? 30 dias - 7 dias do mes inicial + 2 dias do mes final - 1 dia = 24 ?
O do dias com 27 seria como? Qual deles ou qual seria a quantidade de dias?
31 dias de Janeiro menos 7 dias transcorridos + 2 dias = 26?
Qual o resultado esperado?
Olá Alessandro, desculpe a demora. Na verdade o problema segundo o print enviado está nos meses. Veja o exemplo que você usou. No print está 14 anos, 12 meses e 0 dias. O correto é o seu resultado, 14 anos, 11 meses e 24 dias. Era isto que deveria constar no print. Entendeu? Eu apliquei a sua fórmula e obtenho o resultado do print e não o seu.
Valério,
da uma olhada no resultado do print do meu post anterior.....é o resultado esperado,certo?