Le bug de l’an 2000 pouvait survenir dans des programmes où la date était codée sur 6 chiffres (01/01/00 risquait de nous ramener en 1900). J’ai été embauché à l’époque (1998) chez KCG France pour corriger ce problème dans leur système de gestion de concessions automobiles en passant toutes les dates sur 8 chiffres (31/12/1999). C’était long et fastidieux, mais pas très compliqué, il suffisait juste de ne pas en oublier.
Ce n’était rien par rapport à ce qui nous attend le 19 janvier 2038 à 3h 14min et 7s très précisément.
Sur la quasi totalité des ordinateurs 32 bits, la date du jour est représentée en nombre de secondes depuis le 1er janvier 1970 à 0h. Ce nombre de seconde est codé sur 32 bits (231 – 1) soit 2 147 483 647 secondes au maximum (01111111 11111111 11111111 11111111 en binaire). Ce nombre maximum sera atteint le 19/01/2008 à 3h 14min et 7s (temps universel). Dans la seconde suivante, la représentation du temps retombera à 10000000 00000000 00000000 00000000 en binaire, soit -2 147 483 648 secondes et l’ordinateur affichera la date du 13 décembre 1901.
Ci dessous une petite simulation de ce qui nous attend à cette date/heure :
Une majorité d’ordinateurs sera vraissemblablement passée en 64 bits à cette date, ce qui assurera notre tranquilité jusqu’à l’an 292 277 026 596, la limite étant repoussée à 263 – 1 secondes. Mais bon nombre de processeurs 32 bits risquent d’être encore en activité en 2038, en particulier dans les systèmes embarqués (routeurs, automobiles, appareils médicaux, PDA…) et pour eux, il n’existe pas de correctif simple à ce problème.
De nombreux formats de fichiers notent également la date sous cette forme. Ces formats de fichiers deviendront inutilisables. Il faudra de nouveaux formats de fichiers, ce qui obligera à une mise à jour massive de tous les logiciels utilisant ces formats.
Pour mes 80 ans en 2036, il sera temps de postuler à nouveau chez les successeurs de KCG France !
Source : Wikipedia

