Confronto tra due date

Bash:
Confronto tra due date

Come Fare:

#!/bin/bash

# Formato data: AAAA-MM-GG
data1="2023-04-01"
data2="2023-04-10"

# Confronto tra date
if [[ "$data1" > "$data2" ]]; then
    echo "La data1 è dopo la data2."
elif [[ "$data1" < "$data2" ]]; then
    echo "La data1 è prima della data2."
else
    echo "Le date sono uguali."
fi

# Differenza in giorni tra date
differenza=$(( ($(date -d "$data2" +%s) - $(date -d "$data1" +%s)) / 86400 ))
echo "Ci sono $differenza giorni di differenza tra le date."

Output:

La data1 è prima della data2.
Ci sono 9 giorni di differenza tra le date.

Approfondimento:

Comparare date è un bisogno antico quanto la storia dell’informatica. Prima che i sistemi operativi moderni e i linguaggi di programmazione offrissero strumenti integrati per gestire le date, i programmatori dovevano affidarsi a soluzioni manuali. In Bash, la comparazione di date si avvale della funzionalità di convertire le date in secondi da una data nota (l’epoch, iniziando dal 1 gennaio 1970) e di effettuare l’operazione aritmetica desiderata. Alternativamente, si possono usare strumenti come dateutils o confrontare direttamente le stringhe se formattate correttamente. La scelta dell’approccio dipende dal contesto e dalla precisione richiesta.

Vedi Anche: