Calculer la différence entre deux dates en bash

Calculer la différence entre deux dates en bash

En bash, vous pouvez facilement calculer la différence entre deux dates. Cela peut être utile dans divers scénarios, comme le calcul du nombre de jours entre deux événements ou la détermination de l'âge d'une personne. Dans cet article, nous discuterons de différentes méthodes pour calculer la différence entre deux dates dans Bash.

Calculer la différence entre deux dates

La commande «Date» dans Bash peut être utilisée pour calculer la différence entre deux dates. La syntaxe pour l'utilisation de la commande 'Date' est la suivante:

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

Dans la commande ci-dessus, remplacez "Yyyy-mm-dd" avec les deux dates que vous souhaitez comparer dans le même format. La commande sortira le nombre de jours entre les deux dates.

Regardons un exemple. Si vous souhaitez calculer le nombre de jours entre 1er janvier 2023 et 28 février 2023, Vous pouvez utiliser la commande suivante:

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

La sortie de cette commande sera:

58
158

Cela signifie qu'il y a 58 jours Entre le 1er janvier 2023 et le 28 février 2023.

Méthode 2: Utilisation de la commande 'BC'

La commande «BC» dans Bash peut être utilisée pour effectuer des calculs mathématiques. Pour calculer la différence entre deux dates à l'aide de la commande 'BC', utilisez la syntaxe suivante:

echo \ ($ (date -d "yyyy-mm-dd" +% s) - $ (date -d "yyyy-mm-dd" +% s) \) / 86400 | avant JC
1echo \ ($ (date -d "yyyy-mm-dd" +% s) - $ (date -d "yyyy-mm-dd" +% s) \) / 86400 | avant JC

Dans la commande ci-dessus, remplacez "Yyyy-mm-dd" avec les deux dates que vous souhaitez comparer dans le même format. La commande sortira le nombre de jours entre les deux dates.

Par exemple:

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

Méthode 3: Utilisation de la commande 'awk'

La commande 'awk' dans bash peut également être utilisée pour calculer la différence entre deux dates. Utilisez la syntaxe suivante:

echo $ (date -d "yyyy-mm-dd" +% s) $ (date -d "yyyy-mm-dd" +% s) | awk 'print ($ 1 - $ 2) / 86400'
1echo $ (date -d "yyyy-mm-dd" +% s) $ (date -d "yyyy-mm-dd" +% s) | awk 'print ($ 1 - $ 2) / 86400'

Dans la commande ci-dessus, remplacez "Yyyy-mm-dd" avec les deux dates que vous souhaitez comparer dans le même format. La commande sortira le nombre de jours entre les deux dates.

Par exemple:

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

Conclusion

Le calcul de la différence entre deux dates dans Bash peut être effectuée en utilisant différentes commandes, telles que «Date», «BC» et «awk». En utilisant ces commandes, vous pouvez facilement calculer le nombre de jours entre deux dates. Savoir comment calculer la différence entre deux dates peut être utile dans divers scénarios, comme le calcul de l'âge d'une personne ou le nombre de jours entre deux événements.