[Python] Calcolo giorni tra due date

Per calcolare il numero di giorni tra due date usando Python possiamo fare affidamento sul modulo datetime che oltre a permetterci di manipolarne la formattazione e l’output è possibile utilizzare anche per operazioni matematiche tra elementi temporali.

from datetime import datetime
date_format = "%d/%m/%Y"
ask_a = input('Inserisci prima data (dd/mm/aaaa) o premi Enter per oggi:\n')
if not ask_a:
   ask_a = datetime.now().strftime(date_format)
   print ("\033[FOggi:",ask_a)
ask_b = input('Inserisci seconda data (dd/mm/aaaa):\n')
try:
    a = datetime.strptime(ask_a, date_format)
    b = datetime.strptime(ask_b, date_format)
    if a > b:
        delta = a - b
    else:
        delta = b - a
    print ('La differenza tra le due date è di',delta.days,'giorni.')
except:
    print('Rilevati problemi con formattazione dati inserite (dd/mm/aaa)')

Ma vediamo meglio nel dettaglio:

  • (Riga 1) importiamo il modulo datetime;
  • (Riga 2) definiamo la formattazione delle date (gg/mm/aaaa) ovvero in Python “%d/%m/%Y”;
  • (Righe 3-6) immettiamo la data di partenza (di default sarà presa in considerazione la data corrente che sarà opportunamente mostrata a schermo);
  • (Riga 7) immettiamo la seconda data;
  • (Righe 8-14) proviamo a calcolare la differenza in giorni tra le date fornite come stringhe trasformandoli in oggetti data e quindi sottraendo sempre alla più lontana quella più vicina in maniera da ottenere sempre un valore positivo;
  • (Riga 15)presentiamo a schermo il valore del calcolo effettuato;
  • (Righe 16-17) nel caso di problemi rilevati durante il suddetto calcolo informare circa l’errore nella formattazione delle date inserite.