Contagiorni (day2day2)
Il programma conta i giorni da una data all'altra, partendo dal giorno successivo a quello indicato. Per questo motivo specificando, ad esempio, intervalli dal 1° gennaio al 31 dicembre si otterranno 364 giorni (365 negli anni bisestili). Un concetto simile si applica ai mesi: fra il 1° aprile ed il 1° giugno intercorrono 60 giorni ossia due mesi, non tre come verrebbe naturale pensare contando anche aprile.
E' possibile inserire date dall'anno 1 D.C. al 9999 D.C. ma quelle antecedenti al 15/10/1582 non hanno senso perché il calendario attuale, detto gregoriano, è stato adottato solo da allora. Altre informazioni sono disponibili nella pagina di Wikipedia sul calendario gregoriano.
Cos'è
Questo è un semplice "contagiorni" che ho realizzato all'inizio della mia esperienza con PHP per sperimentare e imparare la gestione delle date. Il nome è vuole rendere omaggio ad uno storico programma per i computer Amiga, Day2Day di Preben Nielsen.
Di base la data di partenza è impostata all'inizio dell'anno e quella finale al giorno corrente. Volendo è possibile memorizzare due date differenti mettendo un segno di spunta sulle voci "Salva" vicino ai campi data. L'informazione viene memorizzata in una serie di "cookie" che restano nel dispositivo per 365 giorni o fino alla rimozione manuale.
Lo script è nato a scopo didattico ed ha assolto il suo compito. Ora... giocateci pure! Potete per esempio sapere quanti giorni avete vissuto, quanti mancano a Natale, al vostro compleanno o quanto tempo è trascorso da un importante evento storico.
Volete date con cui giocare (e imparare)? Visitate l'impareggiabile sito Cronologia, cercate la data di un evento e inseritela nel contagiorni per sapere in che giorno della settimana è avvenuto e quanti giorni sono trascorsi da allora.
Un po' di storia
- La prima versione del programma utilizzava le funzioni di gestione delle date native dl PHP 4.x e accettava solo date fra il 1969 e il 2038.
- A febbraio 2006, spinto dalle insistenze dei visitatori, di conoscenti e di amici (una persona in particolare, ciao ;) ), ho implementato il supporto alla libreria ADOdb Date Time di John Lim che sopperisce ai limiti delle funzioni PHP e permette di analizzare date dall'antichità al lontano futuro.
- Nel 2011, sulla base delle tecniche imparate nel frattempo, ho semplificato enormemente il programma tornando a usare funzioni native dl PHP, sebbene ciò abbia un po' ridotto l'intervallo di date elaborabile.
- Nel 2019, rifacendo il sito, ho messo mano a questo script permettendo di salvare in un cookie le date di inizio/fine del conteggio.
- A luglio 2020, per fare un regalo alla mia nipotina Yasmin affascinata da una funzione simile di Alexa,
sono passato a
date_diff()
di PHP 5/7, formattando correttamente le stringhe per gestire date antecedenti all'anno mille, e aggiungendo la visualizzazione dell'intervallo anche in anni, mesi e giorni, con un output coerente che userò anche altrove.
Questo script è dedicato con il cuore a una signora che mi ha scritto anni fa per raccontarmi il modo in cui lo usava, per una ragione molto personale.