Computable.nl
  • Thema’s
    • Carrière
    • Innovatie & Transformatie
    • Cloud & Infrastructuur
    • Data & AI
    • Governance & Privacy
    • Security & Awareness
    • Software & Development
    • Werkplek & Beheer
  • Sectoren
    • Channel
    • Financiële dienstverlening
    • Logistiek
    • Onderwijs
    • Overheid
    • Zorg
  • Computable Awards
    • Overzicht
    • Nieuws
    • Winnaars
    • Partner worden
  • Vacatures
    • Vacatures bekijken
    • Vacatures plaatsen
  • Bedrijven
    • Profielen
    • Producten & Diensten
  • Kennisbank
  • Nieuwsbrief

Schrikkeljaar: schrikbeeld?

10 juli 1997 - 22:005 minuten leestijdOpinieInnovatie & Transformatie
Jan Karman
Jan Karman

Het schrikkeljaar-probleem is geen probleem maar een tamelijk eenvoudige rekenregel. Microsoft heeft zich daar niets aan gelegen laten liggen en rekent het jaar 1900 tot schrikkeljaar.

Erwin Jesterhoudt behandelt in zijn artikel Paus Gregorius en het ‘jaar 2000’-probleem (6juni 1997) in feite twee onderwerpen: het ‘jaar 2000’-probleem en het schrikkeljaar. Voor het onderwerp ‘datums en computers’ is stof genoeg om een boekwerk te vullen.
Bij de bespreking van het ‘jaar 2000’-probleem geeft Jesterhoudt gedetailleerd aan hoe men te werk kan gaan bij een bepaalde aanpak en wat voor kosten daarmee gemoeid zijn. Hij legt de verantwoordelijkheid voor het – eigenlijk gênante – verschijnsel bij de programmeurs. De oorzaak ligt echter dieper en vloeit voort uit de beperking van de technologie, gecombineerd met de inertie van de gehele IT-industrie. Vroeger werd bijvoorbeeld op een schrijfmachine de letter x voor het maal-teken gebruikt en de letter l voor het cijfer 1. Nog altijd beschikt het toetsenbord niet over het ‘maal’-teken. Blijkbaar is de computer er voornamelijk voor tekst. Op de ponskaarten moest zuinig worden omgesprongen met de beschikbare tachtig posities. Veel computertermen herinneren nog aan deze tijden, zoals CR/LF voor Carriage Return/Line Feed, in het Nederlands ‘wagen terug en nieuwe regel’ of ‘omhaal’, nog steeds als zodanig getekend op de Enter-toets. De Tab-toets wordt in een Windows-omgeving nog altijd net zo gebruikt als vroeger op de schrijfmachine: om van kolom (venster) naar kolom (venster) te springen. Nog altijd zijn er analisten die hun scherm indelen in vierentwinitg bij tachtig kolommen.
Zo zijn er nog heel wat fossiele overblijfselen uit het schrijfmachine- en ponskaartentijdperk, maar de pound foolish penny wise-houding is nooit bijgesteld. Een serie artikelen over het ‘jaar 2000’-probleem is te vinden in Communications (mei, 1997), het officiële orgaan van de ACM (Association for Computing Machinery).

Schrikkeljaar

Bij het probleem met het schrikkeljaar beschrijft Jesterhoudt eenduidig de wijze waarop sinds 1582 een jaar als schrikkeljaar wordt bepaald. Het schrikkeljaar-probleem is dus geen probleem maar een tamelijk eenvoudige rekenregel. Microsoft heeft zich daar overigens niets aan gelegen laten liggen en rekent het jaar 1900 als schrikkeljaar. Microsoft heeft dit niet zelf bedacht: het komt voort uit het vroegere spreadsheet-programma Multi Plan. Daarmee is Microsoft voor wat het schrikkeljaar betreft in het gezelschap van Lotus en IBM gekomen.
Als een automatiseerder nu, met het oog op het jaar 2000, zou kiezen voor een seriële datum-opslag en hij zou een juiste conversie doen, dan zit hij bij de genoemde spreadsheet-leveranciers fout. Zijn dag wordt gepresenteerd als de dag van gisteren! 1 Maart 1900 is in de telling van Multi Plan, die begint op 1 januari 1900, de zestigste dag in plaats van de 59ste. Dat is weliswaar al lang geleden, maar bijvoorbeeld pensioenfondsen, verzekeringsmaatschappijen of notariskantoren hebben nog altijd met die datum te maken. Er zijn nog heel wat deelnemers, klanten dus, die vóór die datum geboren zijn. Dit soort instellingen heeft al eens met een eeuwwisseling te maken gehad en wordt straks geconfronteerd met het onderscheid tussen drie eeuw-perioden: de negentiende, de twintigste en de eenentwintigste eeuw.

Computer-algoritme

Het interessantste van automatiseren is het vinden van een computer-algoritme voor de beschrijving van een probleem. Het algoritme voor de bepaling van een schrikkeljaar is:
Stap 1. Bepaal de restwaarde bij deling (modulo) van het jaar door achtereenvolgens 4, 100 en 400;
Stap 2. Vergelijk de uitkomsten met 0 (zijn ze deelbaar?);
Stap 3. Tel de drie (boolean) uitkomsten op;
Stap 4. Bepaal van deze som de modulo 2, identiek aan even of oneven.
De uitkomst ligt tevens in het domein ‘waar of niet waar’ en geeft in dit geval aan of het om een schrikkeljaar gaat of niet.
In de computertaal J [1](een APL-dialect, niet te verwarren met Microsofts J++) vervult het Ascii-teken ‘|’ de functie van restwaarde. J is array-georiënteerd; men kan bijvoorbeeld schrijven:
4 100 400 | 1996 met als uitkomst: 0 96 396.
Een ‘/’ achter de ‘|’ zorgt ervoor dat de operatie over alle elementen van het rechterargument wordt uitgevoerd. We schrijven nu:
4 100 400 |/ 1900 1996 1997 2000
 
en krijgen daarmee de matrix:

0010
096970
3003963970

 
vergelijking met 0 geeft:

1101
1001
0001

 
optelling over de kolommen door +/

2103

 
en tenslotte modulo 2 met 2|

0101

 
waaruit resulteert dat uit de beschouwde reeks alleen 1996 en 2000 schrikkeljaren zijn.

Volgende tijdbom

In één regel het beschrijvende èn op de computer uitvoerbare alogritme:
2|+/0=4 100 400|/ arg
(De executie verloopt van rechts naar links; de interpreter zorgt voor een juiste binding tussen functie en argument)
Voor arg kan elke numerieke array worden ingevuld.
Desgewenst geeft:
365+2|+/0=4 100 400|/ arg: het totaal aantal dagen in de in arg voorkomende jaren in die jaren;
28+2|+/0=4 100 400|/ arg : het aantal dagen in februari in die jaren;
(2|+/0=4 100 400|/ arg) # arg : de uit arg geselecteerde schrikkeljaren
( # selecteert uit de reeks die elementen waarvoor de conditie waar is).
De volgende tijdbom tikt reeds [2]. Op een 32-bits-woord computer waar de secondentelling begon op 1 januari 1970 (zoals bij Unix), tikt deze klok in 2035 voor het laatst; dan is het woord ‘vol’.
 
Jan Karman, Almere
karman@knoware.nl
[1]. K.E. Iverson, Hui, R.: J Introduction and Dictionary
[2]. R.L. Glass: The next date crisis, ACM Communications, jan. 1997

Deel

    Inschrijven nieuwsbrief Computable

    Door te klikken op inschrijven geef je toestemming aan Jaarbeurs B.V. om je naam en e-mailadres te verwerken voor het verzenden van een of meer mailings namens Computable. Je kunt je toestemming te allen tijde intrekken via de af­meld­func­tie in de nieuwsbrief.
    Wil je weten hoe Jaarbeurs B.V. omgaat met jouw per­soons­ge­ge­vens? Klik dan hier voor ons privacy statement.

    Whitepapers

    Computable.nl

    Slimme connectiviteit: de toekomst van bouwen

    Hoe stoom jij jouw organisatie in de bouw en installatie sector klaar voor de digitale toekomst?

    Computable.nl

    Design Sprints: 4 dagen van idee naar prototype

    Hoe zet je in vier dagen tijd een gevalideerd prototype neer met Design Sprints?

    Computable.nl

    Dit is de weg naar informatietransformatie

    In een wereld waar data en informatie centraal staan, moeten organisaties zich aanpassen aan de digitale toekomst. Informatietransformatie is de sleutel tot het versterken van beveiliging en het bevorderen van efficiëntie.

    Meer lezen

    Quantum
    ActueelCloud & Infrastructuur

    Nieuwe Cisco-netwerkchip brengt quantum-internet dichterbij

    AchtergrondCarrière

    Ict-overnamemarkt trapt 2025 goed af, maar onzekerheid troef

    OpinieCloud & Infrastructuur

    Voorbereiding & verhuizing: zo implementeer je de hybride cloud

    ActueelCloud & Infrastructuur

    Europese Rekenkamer kraakt EU-strategie voor chipsector

    ActueelData & AI

    EU investeert bijna 2 miljard in digitale innovatie

    ActueelInnovatie & Transformatie

    Iwell ontvangt bijna 30 miljoen groeigeld

    Geef een reactie Reactie annuleren

    Je moet ingelogd zijn op om een reactie te plaatsen.

    Populaire berichten

    Meer artikelen

    Footer

    Direct naar

    • Carrièretests
    • Kennisbank
    • Planning
    • Computable Awards
    • Magazine
    • Abonneren Magazine
    • Cybersec e-Magazine

    Producten

    • Adverteren en meer…
    • Jouw Producten en Bedrijfsprofiel
    • Whitepapers & Leads
    • Vacatures & Employer Branding
    • Persberichten

    Contact

    • Colofon
    • Computable en de AVG
    • Service & contact
    • Inschrijven nieuwsbrief
    • Inlog

    Social

    • Facebook
    • X
    • LinkedIn
    • YouTube
    • Instagram
    © 2025 Jaarbeurs
    • Disclaimer
    • Gebruikersvoorwaarden
    • Privacy statement
    Computable.nl is een product van Jaarbeurs