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.

e-mail.gif (15768 octets)

Copyright © 1999 GIPP Info