hobbel van 365,2422 dagen Ontwikkelingen Naast het jaartalprobleem, kent veel programmatuur nóg een hob bel, die domweg is ontstaan door onkunde bij programmeurs. Een jaar bestaat uit 365,2422 dagen. Omdat dat zo'n onwerkbaar getal is, heeft Julius Caesar besloten een jaar op 365 dagen te stellen en de uren die daardoor afvallen, eens per vier jaar te compenseren met een schrikkel dag. Vandaar dat februari eens per vier jaar een extra dag heeft. Maar die ene dag is eigenlijk iets teveel van het goede. Vandaar dat Paus Gre- gorius het systeem later aanpaste. Elk honderdste jaar vervalt de schrik keldag. Omdat dit met de eeuwen toch de nodige uren tekort geeft, is besloten elk vierhonderdste jaar de schrikkeldag wel in te roosteren (bent u er nog?). Samengevat geeft dit de volgende regels: Een jaar is een schrikkeljaar als het jaartal deelbaar is door 4 (zoals bijv. 1996), behalve als het ook deelbaar is door 100. Een jaar is een schrikkeljaar als het deelbaar is door 400. Volgens de eerste regel is 2000 geen schrikkeljaar (deelbaar door 4 én 100). Maar volgens regel 2 is het wel degelijk een schrikkeljaar. Een computer moet vanzelfsprekend met dit systeem bekend zijn. Nu kent vrijwel iedereen de eerste regel, maar de tweede regel is veel min der bekend. Vandaar dat er nogal wat programma's zijn die niet in de gaten hebben dat er in het jaar 2000 een 29ste februari hoort te zijn. Ook dit probleem neemt Team 2000 mee in zijn inspanningen. tot geen verkeer zijn, op maandag wel. Als het programma dat die liften aanstuurt op vrijdag 8 januari 2000 aanneemt dat het zondag 8 januari 1900 is, kun je je het gedrang wel voorstellen in de hal van dat gebouw. Zo'n probleem kan ook ontstaan met het programma dat het tijdslot van een kluis bestuurt. Op 8 januari 2000 blijft de kluis dan dicht, terwijl - ie een kleine week eerder, op zondag 2 januari, open was omdat het pro gramma toen dacht dat het maandag 2 januari 1900 was. En zo zijn er tal loze voorbeelden. Wat dacht je van een programma dat uitstaande faktu- ren beheert en op dinsdag 4 januari plotseling aanmaningen ophoest voor rekeningen die al jaren geleden zijn betaald. Of een salarisprogramma dat ineens weigert te betalen omdat alle werknemers nog in dienst moeten komen...' De oorzaak van het probleem is zuinigheid en 'gemakzucht'. In de prehistorie van het compu tergebruik - zo'n 20, 25 jaar gele den, toen zelfs voor de 'grote' centrale compu ter een 4 MB Ram-geheugen heel bijzonder was - waren de systemen voor het opslaan van gegevens nogal duur. Hoe minder geheugenruimte een programma nodig had, hoe beter het dus was, ook al omdat de gege vens op die ma nier sneller gesor teerd en getrans porteerd konden worden. Handige programmeurs zochten overal naar de kortste weg en voor het gebruik van data was die snel gevonden. In plaats van 21-9-1971 toetste men 21-9-71. Door zo per datum twee posities minder te gebruiken, bleef er op de harde schij ven of magneetbanden kostbare ge heugenruimte vrij voor andere nuttige zaken. IJzeren logica Hartstikke slim en eco nomisch, natuurlijk, maar wel met één bedenking: bij data tot het jaar 1999 is er niets aan de hand, maar vanaf 2000 gaat het mis. De compu ter 'leest' namelijk niet 1-1-2000 maar 1-1-00. Met de ijzeren logica die dergelijke machines eigen is, doet hij dan één van twee dingen: ofwel hij constateert dat het om een datum gaat in het jaar 1900 óf hij consta teert dat er iets niet klopt en weigert dienst. 00 is immers minder dan 99? Van Mourik: 'Omdat met de jaren opslagsystemen zoals harde schijven niet alleen veel beter maar ook stuk ken goedkoper zijn geworden, zou je verwachten dat de eeuwindicatie in de meeste programma's is aangepast, maar helaas is dat niet zo. Heel veel van die oudere programma's zijn wel iswaar gemoderniseerd, maar de da tumaanduiding is doorgaans hetzelfde gebleven. Vooral omdat de gebruikers het te omslachtig vinden om elke keer weer het hele jaartal in te typen. 'Het gaat overigens niet alleen om oude programma's. Ook een redelijk nieuw programma als Excel 5.0 gaat de fout in. Tik bij wijze van proef maar eens een begindatum in van 01- 06-1996 en een einddatum van 31- 05-21Je zult zien dat er een foutmel ding komt omdat volgens de bereke ningen van de computer het contract al is afgelopen voor het is afgesloten. De allernieuwste programma's zijn wel voorbereid op de eeuwwisseling en gaan er bij 00 automatisch van uit dat het om 2000 gaat, tenzij de ge bruiker anders aangeeft. Maar daar mee is nog niet gezegd dat het goed gaat. Programma's op de kleinere, de centrale systemen en de pc's gebrui ken vaak gegevens van de centrale computers, waardoor er alsnog een conflict kan ontstaan. Of het basisge heugen van de pc kan niet met de eeuwwisseling overweg. Kortom, het kan op heel veel plaatsen misgaan en wij zijn daarom nu heel druk bezig alle computerprogrammatuur die bij de Rabobank wordt gebruikt door te lichten zodat er gepaste maatregelen kunnen worden genomen.' Domweg testen 'w;j' zjjn de leden van het Team 2000 dat in mei van dit jaar (1996) aan de slag is gegaan onder leiding van René Leek, manager bij Spectrum. Het Team bestaat uit maxi maal zestien ploegen, elk bestaande uit een medewerker van de Rabobank en een externe software-deskundige. Veel mensen, maar het gaat ook om veel werk. 'In veel gevallen', zegt Van Mourik, 'is de enige manier om te achterhalen of een programma pro blemen kan geven, domweg tests doen. De software steeds weer andere handelingen laten verrichten en kij ken wat er gebeurt. Dat moet met sommige programma's heel voorzich-

Rabobank Bronnenarchief

blad 'RaboMagazine' | 1996 | | pagina 20