Se as datas estiverem em um arquivo, uma por linha, por exemplo:
16-49-24-02-2016
16-49-25-02-2016
Então você pode usar awk
:
awk -F- 'NR==1 {
then = mktime(sprintf("%s %s %s %s %s 00", $5, $4, $3, $1, $2))
}
NR==2 {
now = mktime(sprintf("%s %s %s %s %s 00", $5, $4, $3, $1, $2));
printf "%s\n", (now - then)/3600
}' input.txt
A função mktime
espera tempo em YYYY MM DD HH MM SS
, então dividimos o registro de data e hora determinado e o convertemos para esse formato (usando 00
por segundos). A diferença entre os timestamps é em segundos, então nós dividimos por 3600 para obter as horas.