Calcolo di una data futura o passata

Bash:
Calcolo di una data futura o passata

How to:

Calcoliamo le date usando il comando date in Bash. Ecco degli esempi:

# Data attuale
oggi=$(date '+%Y-%m-%d')
echo "Oggi è: $oggi"

# Aggiungi 10 giorni
data_futura=$(date -d "$oggi + 10 days" '+%Y-%m-%d')
echo "Tra 10 giorni sarà: $data_futura"

# Rimuovi 20 giorni
data_passata=$(date -d "$oggi - 20 days" '+%Y-%m-%d')
echo "20 giorni fa è stato: $data_passata"

Output previsto:

Oggi è: 2023-04-01
Tra 10 giorni sarà: 2023-04-11
20 giorni fa è stato: 2023-03-12

Deep Dive

Il comando date in Unix è vecchio quanto i computer stessi. Era già presente in versioni iniziali di Unix. date permette di visualizzare o impostare la data e l’ora del sistema.

Alternative:

  • gdate: su sistemi non GNU (come macOS), potresti usare gdate se installi coreutils.
  • Altre lingue di scripting (Python, Perl): potrebbero offrire più flessibilità e funzioni per la gestione delle date.

Dettagli implementativi:

  • Bash non ha una gestione integrata delle date. Si appoggia al comando date del sistema.
  • L’opzione -d di date permette di passare una stringa che descrive la data desiderata.
  • Attenzione alle configurazioni regionali: la data può essere interpretata in modi diversi. Per esempio, in alcune localizzazioni, il formato di default potrebbe essere gg/mm/aaaa invece di aaaa-mm-gg.

See Also