Il problema dell'anno 2000
Il problema del 2038
Il problema dell'anno 2038 è molto simile a quello che abbiamo appena trattato. Questo inconveniente potrebbe accadere ai programmi realizzati con il linguaggio C che usano un sistema differente dal solito per memorizzare le date.
Il formato standard di data/ora assume che l'inizio dei tempi (detto anche Data Zero) sia il 1 Gennaio 1970 alle 12:00:00 AM . Ogni valore di data/ora viene calcolato come i secondi che seguono la data zero. Quindi il valore 919642680 rappresenta 919.642,680 secondi dopo il 1 Gennaio 1970 12:00:00 AM e quindi il 21 Febbraio 1999 alle 16:18:00.
Il problema di questo formato è dato dal fatto che con i 4 byte del campo è possibile rappresentare numeri che vanno fino ad un massimo di 2.147.483.648 (corrispodente al 19 Gennaio 2038!).
Quando supereremo questa cifra si veirficherà quindi un problema analogo a quello dell'anno 2000 e non srà più possibile effettuare calcoli congruenti tra le date.
La soluzione di questo problema è ancora più semplice del precedente. Visto che questo formato di data è stabilito nella libreria Time.h, basterà modificare la lunghezza del campo e ricompilare tutti i programmi senza doverli nemmeno modificare.