Tra i tanti misteri del software moderno, ce n’è uno che riguarda Excel e che resiste ormai da decenni: il programma di Microsoft considera il 1900 come anno bisestile, quando in realtà non lo è. Non si tratta di una svista recente, né di un problema introdotto con qualche aggiornamento andato storto. È una scelta progettuale che risale alle primissime versioni del foglio di calcolo e che, a quanto pare, resterà esattamente dov’è. Per sempre.
Il funzionamento è semplice da capire. Excel usa un sistema di numerazione seriale per gestire le date: ogni giorno corrisponde a un numero intero, partendo dal 1 gennaio 1900. Questo approccio rende i calcoli rapidi e ordinati, ma si porta dietro un problema specifico legato alle regole del calendario gregoriano. Secondo queste regole, un anno è bisestile solo se divisibile per 4, con un’eccezione importante: gli anni secolari devono essere divisibili anche per 400. Il 1900 non supera questo test, eppure Excel lo tratta come se lo facesse, riconoscendo come valida la data del 29 febbraio 1900. Una data che, nella realtà, non è mai esistita.
Perché esiste questo errore e da dove arriva
La spiegazione va cercata negli anni ’80, quando il software dominante per i fogli di calcolo era Lotus 1-2-3. Quel programma conteneva lo stesso errore: includeva il 29 febbraio 1900 nel proprio calendario interno. Quando Microsoft sviluppò Excel, la priorità era garantire piena compatibilità con i file già esistenti creati in Lotus. Replicare quel comportamento, per quanto tecnicamente scorretto, era la scelta più sensata dal punto di vista pratico. E così fu fatto.
La conseguenza? Correggere oggi quell’errore significherebbe alterare tutte le date successive nel sistema seriale di Excel. Ogni formula, ogni riferimento temporale, ogni calcolo finanziario costruito su quei numeri verrebbe compromesso. Si parla di milioni e milioni di file sparsi in tutto il mondo. Il rischio di incompatibilità sarebbe enorme, e i benefici pratici tutto sommato minimi, dato che il bug riguarda esclusivamente le date precedenti al 1 marzo 1900.
Vale la pena sapere che Excel offre anche un sistema alternativo, chiamato sistema 1904, utilizzato storicamente nelle versioni per macOS. Questo sistema imposta l’origine delle date al 1 gennaio 1904 e non contiene l’errore legato al 1900. Il problema è che introduce uno scarto di 1462 giorni rispetto al sistema standard, rendendo piuttosto complicata la compatibilità tra file che usano i due approcci diversi. In ambienti dove convivono entrambi i sistemi, le discrepanze possono diventare difficili da individuare e ancora più difficili da risolvere.
Microsoft non ha intenzione di intervenire
La posizione di Microsoft è chiara e non lascia spazio a dubbi: il problema non verrà risolto. La ragione è puramente pragmatica. Anche una modifica che potrebbe sembrare banale richiederebbe la revisione di tutte le funzioni legate alle date, compresi modelli complessi, pianificazioni aziendali e calcoli finanziari che dipendono dalla sequenza numerica attuale.
Dal punto di vista ingegneristico, il costo di una correzione supera di gran lunga i benefici. Il bug è noto, è documentato, è circoscritto a un intervallo temporale che nella pratica quotidiana quasi nessuno tocca mai. Le conseguenze di una modifica, invece, sarebbero estese e potenzialmente devastanti per la compatibilità globale dei documenti Excel. Per chi lavora con dati storici o calcoli retrospettivi che coinvolgono date a cavallo del febbraio 1900, l’unica strada resta la consapevolezza del problema e, dove necessario, l’applicazione manuale di correttivi.