msoliver
(usa Debian)
Enviado em 31/07/2023 - 00:18h
Sugestão, com o awk.
cat idade.awk
BEGIN {
a=31556952;d=86400;h=3600
}
{
T = ($1 - $2)
Y = int(T / a)
D = int((T % a) / d)
H = int(int(T % 86400) / 3600)
M = int((T % 3600) / 60)
S = int((T % 3600) % 60)
printf "%s Anos, %03d dias, %02d horas, %02d minutos e %02d segundos.\n", Y, D, H, M, S
}
#a=31556952, explicação no link abaixo.
#https://pt.wikipedia.org/wiki/Ano#:~:text=No%20Calend%C3%A1rio%20Gregoriano%20o%20ano,dias%20%3D%20365%2C2425%20dias.
date -d'1974-07-30 12:00:00' +%s
144428400 #UTS inicial
awk -f idade.awk <<< "$(printf '%(%s)T') 144428400"
[b]#Exenplo
00:03:08
#Hora da execução do comando.
49 Anos, 000 dias, 12 horas, 03 minutos e 08 segundos
#Resposta
Uso
awk -f idade.awk <<< 'data_fim data_inicio'
Obs.: Data inicio/fim, em uts, conforme exemplo acima.
FIM > INICIO
Só tem um pequeno "defeito..... :)"
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________