Calcule a diferença entre duas datas em Bash

Calcule a diferença entre duas datas em Bash

Em Bash, você pode calcular facilmente a diferença entre duas datas. Isso pode ser útil em vários cenários, como calcular o número de dias entre dois eventos ou determinar a idade de uma pessoa. Neste artigo, discutiremos diferentes métodos para calcular a diferença entre duas datas em Bash.

Calcule a diferença entre duas datas

O comando 'data' em Bash pode ser usado para calcular a diferença entre duas datas. A sintaxe para usar o comando 'data' é a seguinte:

echo $ ((($ (data -d "yyyy-mm-dd" +%s)-$ (data -d "yyyy-mm-dd" +%s))/86400))
1echo $ ((($ (data -d "yyyy-mm-dd" +%s)-$ (data -d "yyyy-mm-dd" +%s))/86400))

No comando acima, substitua “AAAA-MM-DD” com as duas datas que você deseja comparar no mesmo formato. O comando produzirá o número de dias entre as duas datas.

Vejamos um exemplo. Se você deseja calcular o número de dias entre 1 de janeiro de 2023 e 28 de fevereiro de 2023, Você pode usar o seguinte comando:

echo $ ((($ (data -d "2023-02-28" +%s)-$ (data -d "2023-01-01" +%s))/86400))
1echo $ ((($ (data -d "2023-02-28" +%s)-$ (data -d "2023-01-01" +%s))/86400))

A saída deste comando será:

58
158

Isso significa que existem 58 dias Entre 1 de janeiro de 2023 e 28 de fevereiro de 2023.

Método 2: Usando o comando 'BC'

O comando 'BC' em Bash pode ser usado para realizar cálculos matemáticos. Para calcular a diferença entre duas datas usando o comando 'BC', use a seguinte sintaxe:

echo \ ($ (data -d "yyyy-mm-dd" +%s)-$ (data -d "yyyy-mm-dd" +%s) \) / 86400 | bc
1echo \ ($ (data -d "yyyy-mm-dd" +%s)-$ (data -d "yyyy-mm-dd" +%s) \) / 86400 | bc

No comando acima, substitua “AAAA-MM-DD” com as duas datas que você deseja comparar no mesmo formato. O comando produzirá o número de dias entre as duas datas.

Por exemplo:

echo \ ($ (data -d "2023-02-28" +%s)-$ (data -d "2023-01-01" +%s) \) / 86400 | BC #Output: 58
123echo \ ($ (data -d "2023-02-28" +%s)-$ (data -d "2023-01-01" +%s) \) / 86400 | BC #Output: 58

Método 3: Usando o comando 'awk'

O comando 'awk' em bash também pode ser usado para calcular a diferença entre duas datas. Use a seguinte sintaxe:

ECHO $ ​​(DATA -D "AYYYY-MM-DD" +%S) $ (DATA -D "AAA AA AA AAÇÃO-MM-DD" +%S) | awk 'print ($ 1 - $ 2) / 86400'
1ECHO $ ​​(DATA -D "AYYYY-MM-DD" +%S) $ (DATA -D "AAA AA AA AAÇÃO-MM-DD" +%S) | awk 'print ($ 1 - $ 2) / 86400'

No comando acima, substitua “AAAA-MM-DD” com as duas datas que você deseja comparar no mesmo formato. O comando produzirá o número de dias entre as duas datas.

Por exemplo:

echo $ (data -d "2023-02-28" +%s) $ (data -d "2023-01-01" +%s) | awk 'print ($ 1 - $ 2) / 86400' #Output: 58
123echo $ (data -d "2023-02-28" +%s) $ (data -d "2023-01-01" +%s) | awk 'print ($ 1 - $ 2) / 86400' #Output: 58

Conclusão

Cálculo da diferença entre duas datas no Bash pode ser feito usando comandos diferentes, como 'Date', 'BC' e 'Awk'. Ao usar esses comandos, você pode calcular facilmente o número de dias entre duas datas. Saber como calcular a diferença entre duas datas pode ser útil em vários cenários, como calcular a idade de uma pessoa ou o número de dias entre dois eventos.