Home Millennium Vertalingen

Omhoog

Email me

Het millenium probleem

Over het 'Jaar 2000' probleem is afgelopen twee jaar heel veel geschreven. Veel verhalen schetsen beelden van neerstortende vliegtuigen en weigerende liften. Nu waren wij van FCB toch al van plan op het moment suprème liever met een glas champagne in de hand en een paar (of juist een hoop!) leuke en gezellige mensen om ons heen. Dus de kans dat we tegen juist dié voorbeelden aanlopen lijkt ons bijzonder klein.

Toch is er wel een grond van kleine ongerustheid: voor veel programma's maakt het immers niet uit wat de exacte datum is, bij enkele types programma's echter wèl. Overal waar een vergelijking wordt gemaakt tussen twee data (=datums), kan het misgaan. Voorbeelden zijn bijvoorbeeld financiële software, projectberekeningen en overal waar wordt gewerkt met data (=datums).

Bij het opvragen van de datum vanuit bijvoorbeeld DOS blijken soms de problemen al. Zo kan op 1 januari 2000 de datum als één van de volgende waarden worden gepresenteerd:

LET OP: voordat u gaat experimenteren met het verzetten van de datum raden wij u heel sterk aan om toch voor de zekerheid een back-up van uw systeem te maken (safety first!).

01-01-80 of 01-01-84

Uw computer denkt dat hij terug is bij de geboortedatum van de PC-XT of PC-AT van IBM. Dit probleem is, voor zover wij weten, alleen op te lossen door een nieuwe BIOS of een drivertje van uw BIOS fabrikant. In feite is dit probleem al eens eerder gesignaleerd: Olivetti heeft tot in 1988 PC-systemen verkocht (model M240, een 8086) , die niet bestendig bleken te zijn tegen het jaar 1994: de teller had zijn rondje gemaakt en viel terug naar 1984. Dit probleem is dat jaar opgelost door een kleine routine die voorin de config.sys moest worden geplaatst. Het jaar daarop werkte deze oplossing ook niet en heeft men een nieuw drivertje gemaakt, die tot op de dag van vandaag nog steeds werkt. 01-01-00 Uw computer denkt dat we in 1900 zijn aangekomen en belsuit misschien wel dat de computer in dit jaar nog niet is uitgevonden. Kritiek is nu de software die u gebruikt: als deze de aanduiding '00' blijft interpreteren als 1900, dan kunt u bij bepaalde functies de mist ingaan.

 

01-01-2000

Uw computer rapporteert in ieder geval het juiste jaar, zodat dit dus in orde is. Alleen als de programmeur van de door u gebruikte applicatie (of de door u geschreven applicaties) zelf de datum als twee cijfers heeft gebruikt, door bijvoorbeeld te werken met zgn. jaarweken (zoals 9822, 9952, en 0001?), kunnen problemen ontstaan. Uw computerhardware is in ieder geval millenium bestendig. Rest wel de tests om te bekijken of ook de volgende jaren goed worden verwerkt èn dat even wordt getest of 29 februari 2000 wel wordt herkend (want 2000 is namelijk wèl een schrikkeljaar).

 

01-01-1900

Uw computer denkt dat het 1900 is. U bent nu volledig afhankelijk van het gebruikte programma: het programma moet deze fouten van de PC onderkennen en automatisch bepalen dat het gebruik rond 1900 niet waarschijnlijk is en aannemen dat het jaar daadwerkelijk 100 jaren hoger is, dus vanaf 2000. De truuk hierachter is dat PC's pas bestaan vanaf 1980, dus bij een jaar voor het jaar 1980 dus niet door de PC wordt meegemaakt. Dit houdt in dat alle jaartallen onder de 80 jaren in de 21-ste eeuw zullen zijn.

 

PowerBASIC Year 2000 Compliance

Dit is een vrije vertaling van een artikel van de PowerBASIC Inc. site

Alle rechten voorbehouden (C) 1998 by Henk Broekhuizen

Voor veel computer en software systemen zal het jaar 2000 een scala van problemen geven voor programma's die het jaar als twee digits (dus met twee cijfers) vastleggen. Dit document beschrijft de 'Jaar 2000' problemen die samenhangen met de PowerBASIC productlijn.

De BASIC programmeertaal, zoals geïmplementeerd door PowerBASIC ondersteunt tot nu toe slechts één datum gerelateerd commando: DATE$. De DATE$ systeem variabele stelt een programma in staat om de huidige datum op te vragen of de systeemdatum in te stellen. De systeem datum is de datum die wordt bijgehouden door het computersysteem.

Gebruik makend van de syntaxis:

A$=DATE$

kan een programma de courante systeemdatum ophalen. De datum wordt gerapporteerd met een viertal cijfers voor het jaar, zoals '01-01-2000'.

Gebruik makend van de syntaxis:

DATE$="01-01-2000"

kan een programma de systeemdatum veranderen. De meeste BASIC dialecten, inclusief PowerBASIC, staan toe dat dat het jaar met slechts twee cijfers wordt opgegeven. Bij deze wijze van gebruik nemen de meeste BASIC dialecten aan dat het gaat om de jaren 1900 - 1999. Dit is het enige potentiële 'Jaar 2000' of millenium probleem in de PowerBASIC taal.

Turbo BASIC, PowerBASIC 2.x en PowerBASIC 3.0/3.1/3.2 zullen alle aannemen dat het om de jaren 1900 - 1999 gaat als u slechts twee cijfers voor het jaar opgeeft. In de meeste besturingssystemen zoals alle versies van MSDOS en Windows 95/98 zal een 'run-time error' optreden en het systeem zal stoppen met de uitvoering als een jaar wordt opgegeven vóór 1980. In Windows NT echter zal de systeem datum daadwerkelijk veranderen naar het opgegeven jaar (liggend vóór 1980).

Er is geen patch beschikbaar om dit probleem in vroegere versies van Turbo/PowerBASIC te corrigeren, noch voor applicaties die hiermee zijn gemaakt. De enige oplossing is het her-compileren van de applicatie met PowerBASIC 3.5 for DOS (of later). PowerBASIC 3.5 voor DOS kent dit probleem echter niet. Alle twee cijfers voor het jaar worden 'vertaald' naar een datum in de jaren 2000 - 2099.

Alle versies van PowerBASIC DLL Compiler for Windows zijn Jaar 2000 bestendig en nemen aan dat alle jaren lager dan '80' liggen in de jaren 2000 - 2079.

Bezoek het PB forum in het Nederlands en/of teken mijn gastenboek.

Datum laatste aanpassing:
29 december 2003 03:42:06

Email mij voor reacties,
aanvullingen en correcties