Methodologie datum & tijd — Kalenders, weekdagen en ISO-standaarden | MrCalculators

Methodologie datum & tijd

Onze datum- en tijdtools steunen op de proleptische gregoriaanse kalender, de weekdagregel van Zeller en ISO 8601 voor representatie en weeknummering. Deze pagina documenteert de formules die we toepassen, de standaarden die we volgen en de randgevallen (schrikkeldagen, schrikkelseconden, overgangen naar zomertijd, lokale conventies voor weekdagen) die we expliciet afhandelen, zodat resultaten reproduceerbaar en verifieerbaar blijven.

Formules en regels die we gebruiken

Congruentie van Zeller voor weekdag

Om zonder iteratie een gregoriaanse datum naar een weekdag te mappen, gebruiken we de congruentie van Zeller: h = (q + floor(13(m+1)/5) + K + floor(K/4) + floor(J/4) + 5J) mod 7, waarbij januari en februari worden behandeld als maanden 13 en 14 van het voorgaande jaar. De uitkomst wordt vervolgens genormaliseerd naar ISO-weekdagnummering, waarbij maandag 1 is en zondag 7.

ISO 8601-datumformaat

We tonen canonieke data als JJJJ-MM-DD en gecombineerde datum-tijd-waarden als JJJJ-MM-DDTUU:MM:SS met een expliciete offset (Z voor UTC, anders ±UU:MM). Dit is ondubbelzinnig over locales heen, sorteert lexicografisch in chronologische volgorde en komt overeen met het formaat dat de meeste API's en databases native opslaan.

Werkdagen tellen

Werkdagen sluiten zaterdag en zondag uit. Gebruikers kunnen optioneel een feestdagenlijst uitsluiten, die wordt toegepast na de weekendfilter. Voor bereiken die maanden of jaren beslaan tellen we via hele weken plus een restant, zodat zeer lange spannes per berekening O(1) blijven in plaats van elke dag te scannen.

ISO-weeknummering

ISO-weken beginnen op maandag en week 1 van een jaar is de week die de eerste donderdag bevat (gelijkwaardig: de week die 4 januari bevat). Jaren hebben daardoor 52 of 53 ISO-weken, en de eerste of laatste paar dagen van een gregoriaans jaar kunnen tot een aangrenzend ISO-weekjaar behoren. Dergelijke data labelen we als JJJJ-Www-D op basis van het ISO-weekjaar, niet het kalenderjaar.

UTC en schrikkelseconden­beleid

Alle tijdstippen worden opgeslagen als UTC. UTC wordt door het BIPM onderhouden in samenwerking met nationale tijd­laboratoria, en schrikkelseconden worden door IERS Bulletin C aangekondigd wanneer nodig om UTC binnen 0,9 seconden van UT1 te houden. Onze duur­berekeningen gaan uit van 86.400 SI-seconden per dag en voegen geen schrikkelseconden in, wat overeenkomt met het gedrag van POSIX-tijd en de meeste besturingssystemen.

Hoe we reviewen en bijwerken

De kalenderlogica wordt gedekt door unittests waarin schrikkeljaren (1900, 2000, 2024), ISO-weekjaargrenzen (29 december tot 3 januari) en zomertijdovergangen op beide halfronden zijn opgenomen. Wanneer IERS een nieuwe schrikkelseconde aankondigt, werken we de interne documentatie bij maar laten de UTC-rekenkunde ongewijzigd, omdat de verwachtingen van gebruikers over verstreken dagen en uren aansluiten bij het POSIX-model. We controleren deze methodologiepagina na elke ISO 8601-wijziging en minimaal eenmaal per kalenderjaar.

Veelvoorkomende valkuilen

  • Omgaan met schrikkelseconden. Een schrikkelseconde voegt 23:59:60 UTC toe op de laatste dag van juni of december wanneer deze wordt ingevoegd. Omdat onze duur­berekeningen elke dag als 86.400 seconden behandelen (conform POSIX), wijken verschillen die over een dag met een schrikkelseconde lopen één seconde af ten opzichte van een werkelijke SI-secondetelling. Voor dagelijkse planning is dit onzichtbaar; voor wetenschappelijke timing op sub-seconde-niveau heeft u een IERS-bewuste tijdbron nodig.
  • ISO- versus Amerikaanse weeknummering. ISO-week 1 is de week van de eerste donderdag en weken beginnen op maandag — dit is in Nederland de gebruikelijke conventie. De Amerikaanse conventie beschouwt week 1 vaak als de week die 1 januari bevat en laat de week op zondag beginnen. Deze twee systemen verschillen vaak een week in januari en december, dus controleer altijd welke nummering een rapport gebruikt voordat u waarden vergelijkt.
  • Overgangsdagen van zomertijd. Op de dag dat de klok vooruitgaat heeft een lokale dag 23 uur; op de dag dat de klok teruggaat heeft die 25 uur. Berekeningen in lokale tijd kunnen daardoor een fout van één uur opleveren, en een tijdstempel als 02:30 op de terugzetdag is dubbelzinnig. We vermijden dit door alle rekenkunde in UTC uit te voeren en alleen voor weergave naar lokale tijd te converteren.
  • Lokale weekdag versus ISO-weekdag. ISO nummert maandag als 1 en zondag als 7. Veel lokale conventies en spreadsheet­standaarden nummeren zondag als 1 en zaterdag als 7. Het door elkaar gebruiken van beide bij het bouwen van formules (bijvoorbeeld in werkdag­tellingen) verschuift uitkomsten stilzwijgend met een dag, dus we geven altijd aan welke nummering we voor de invoer verwachten.
  • Proleptische gregoriaanse kalender voor historische data. Vóór 1582 was in het grootste deel van Europa (en in sommige landen tot veel later) de juliaanse kalender in gebruik. Nederland nam de gregoriaanse kalender in stappen over: de zuidelijke Nederlanden in 1582, Holland en Zeeland in 1583 en de overige gewesten pas rond 1700. Onze tools passen de gregoriaanse regel terugwerkend toe voor consistente rekenkunde, wat betekent dat een 'historische' datum die u invoert niet overeenkomt met de datum die in documenten uit die periode is vastgelegd. Behandel resultaten van vóór 1582 als een wiskundige conventie, niet als een historische claim.

Begrippenlijst

UTC
Coordinated Universal Time, de primaire tijdstandaard, onderhouden door het BIPM in samenwerking met nationale tijd­laboratoria.
UT1
Een tijdschaal gebaseerd op de rotatiehoek van de aarde. UTC wordt via schrikkelseconden binnen 0,9 seconden van UT1 gehouden.
Schrikkelseconde
Een extra seconde die in UTC wordt ingevoegd, aangekondigd door IERS Bulletin C, om UTC met UT1 in lijn te houden.
Schrikkeljaar
Een gregoriaans jaar van 366 dagen. Deelbaar door 4, behalve dat eeuwjaren ook deelbaar moeten zijn door 400.
ISO 8601
De internationale standaard voor het weergeven van datums, tijden, durations en intervallen in een locale-neutrale vorm.
ISO-weekdatum
Een datumformaat JJJJ-Www-D waarin week 1 de week is die de eerste donderdag bevat en maandag dag 1 is.
Weekjaar
Het jaar waartoe een gegeven ISO-week behoort. Dit kan rond 1 januari of 31 december verschillen van het gregoriaanse jaar.
Proleptische gregoriaanse kalender
De gregoriaanse kalender uitgebreid terug in de tijd naar vóór zijn invoering in 1582, gebruikt voor consistente rekenkunde.
Juliaanse kalender
De kalender die vóór 1582 in Europa algemeen in gebruik was, met een eenvoudiger schrikkeljaarregel (elk vierde jaar).
Congruentie van Zeller
Een gesloten rekenkundige uitdrukking die de weekdag van elke gregoriaanse datum zonder iteratie teruggeeft.
POSIX-tijd
Verstreken seconden sinds 1970-01-01T00:00:00Z, zonder rekening te houden met schrikkelseconden. De basis van de meeste klokken in besturingssystemen.
Zomertijd (DST)
Een lokale-tijd-conventie die de klok gedurende een deel van het jaar één uur verzet, waardoor lokale dagen van 23 en 25 uur ontstaan bij de overgangen.
Tijdsoffset
Het signed verschil tussen een lokale tijd en UTC, geschreven als ±UU:MM (bijvoorbeeld +01:00 voor de Nederlandse wintertijd).
BIPM
Bureau International des Poids et Mesures, het intergouvernementele orgaan dat UTC en de SI-seconde onderhoudt.
IERS
International Earth Rotation and Reference Systems Service, die de rotatie van de aarde volgt en schrikkelseconden aankondigt.