Avalados por :
Olá a todos,
Encontrei um tópico alguns dias atrás em que um usuário final queria a idade de um cliente no formato X Anos Y Meses e Z Dias dados duas datas.
Pesquisei em vários blogs, mas a maioria não considerava o ano bissexto, o que poderia levar a dados incorretos.
Modifiquei a lógica que encontrei em um dos blogs e consegui fazê-la funcionar, então pensei em compartilhá-la com todos vocês, já que podemos ter esses requisitos no futuro.
Assim é como funciona. Vou pegar duas datas como Data Atual ( [CurrDate] ) e Data de Nascimento ( [BDate] ).
Primeiro calcularei o número de anos em uma fórmula que um especialista me disse que dividir uma fórmula grande em partes menores a torna mais legível e fácil de entender.
[NumberOfYears]= Ano([CurrDate]) - Ano([BDate]) - Se ( [CurrDate] < [BDate]; 1 ; 0 ) + " Anos "
Agora calcularei o número de meses
[NumberOfMonths]= (Mod (((NúmeroDeMes(Ano([CurrDate])) - NúmeroDeMes(Ano([BDate])) + 12) - Se ( DiaNúmeroDeMes([CurrDate]) < DiaNúmeroDeMes([BDate]) ; 1 ; 0 ); 12 )) + " Meses "
E por último, o número de dias
[NumberOfDays]= (DiaNúmeroDeAno([CurrDate]) - DiaNúmeroDeAno( [BDate]) + Se ( DiaNúmeroDeAno([CurrDate]) >= DiaNúmeroDeAno( [BDate]) ; 0 ; Se ( DiaNúmeroDeAno( [CurrDate]) - DiaNúmeroDeAno([CurrDate]) < DiaNúmeroDeAno( [BDate]) ; DiaNúmeroDeAno( [BDate]) ; DiaNúmeroDeAno( [CurrDate]) - DiaNúmeroDeAno( [CurrDate]) ) )) + " Dias"
Depois de fazer tudo isso, a única tarefa que resta é concatenar essas três fórmulas.
[Age]= [NumberOfYears]+ [NumberOfMonths]+ [NumberOfDays]
e você obterá os dados no seguinte formato.
Testei o código com datas de ano bissexto e algumas outras datas aleatórias, mas suas valiosas opiniões e sugestões são sempre bem-vindas.
Espero que gostem.
Saudações
Niraj
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute