Informatica per tutti Blog

Information Technology Blog

Millennium BUG

Il termine fa riferimento al problema della gestione corretta delle date nel passaggio dal 31/12/1999 al 01/01/2000, perché con la meccanizzazione delle procedure, la data viene espressa nel formato “GGMMAA”, cioe’ 2 caratteri per il giorno (GG), 2 caratteri per il mese (MM), due caratteri per l’anno (AA). (Questo modo di rappresentare la data e’ diventato uno standard che caratterizza la scadenza, per es. anche dei nostri prodotti alimentari). Per esempio, la data di oggi rappresentata come: 021200, puo’ venire successivamente stampata come 02/12/2000 (introducendo uno “/” dopo lo 02, uno “/” dopo il 12 e “20” prima dello 00), oppure 02 Dicembre 2000 se, facendo riferimento ad una tabella con i 12 nomi dei 12 mesi dell’anno, si preferisce stampare il mese in lettere.

Il problema del passaggio dal 311299 (che sarebbe stato stampato come 31/12/1999, perché da SW davanti al 99 veniva inserita la costante numerica “99” per fornire l’anno) al 010100, consisteva nel fatto che tutto il SW esistente avrebbe preso quest’ultima data come 01011900 (palesemente errata ed impossibile nella verifica della sequenzialita’ delle date), perché il SW, naturalmente, avrebbe introdotto la costante numerica “19” davanti allo 00 dell’anno. Questo problema viene superato con SAP perché tutte le date vengono memorizzate all’interno del sistema non nel formato GGMMAA, ma come numero di giorni calcolati da una data fissa remota (per es. 01/01/1940) alla data da considerare, perché immessa nel sistema.