Le Bug de l'an 2000
Sous DBase et Clipper :
L'année de la date est déjà codée sur 4 emplacements. Par exemple, une date est 01012000 pour le 1er janvier 2000. Donc pas de problème majeur.
Mais pour la lecture, elle se fera par défaut de cette manière 01/01/00. Le problème est que si vous, vous tapez une date comme cela, le 00 sera interprété en 1900.
Donc deux solutions :
1. Vous changez le format d'affichage des dates à l'écran.
2. Vous créez une fonction qui interprètera les années
inférieures à 70 (par exemple), en rajoutant devant celle-ci 20**. (Exemple : 97 = 1997,
15 = 2015).
Je vous propose ma solution : Cette fonction
devra être appelée avant chaque commande "replace ..." de date, comme dans
l'exemple ci-dessous :
votre ancien programme à changer :
replace d1 with d2
par ce nouveau programme :
date2000 = d2
do date2000
d2 = date2000
replace d1 with d2
un nouveau programme devra
être placé dans le fichier "Date2000.prg" :
if right(dtoc(date2000),2)<"70"
set date format "dd/mm/yyyy"
date2000 = ctod(left(dtoc(date2000),6)+"20"+right(dtoc(date2000),2))
set date format "dd/mm/yy"
endif
Je peux vous proposer également de mettre à jour vos programmes et fichiers développés sous DBase ou Clipper pour le passage de l'an 2000.
Copyright © 1999 GIPP Info