Calcule a diferença entre duas datas em Bash
- 1565
- 236
- Howard Fritsch
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))1 | echo $ ((($ (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))1 | echo $ ((($ (data -d "2023-02-28" +%s)-$ (data -d "2023-01-01" +%s))/86400)) |
A saída deste comando será:
581 | 58 |
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 | bc1 | echo \ ($ (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: 58123 | echo \ ($ (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'1 | ECHO $ (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: 58123 | echo $ (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.