‘Hoeveel dagen zitten er tussen 10 en 12 maart?’ Het antwoord kan twee, drie of één zijn — en alle drie kunnen kloppen. Het aftrekken is eenvoudig. De echte vraag is of de begindatum, de einddatum, beide of geen van beide meetellen.
Deze gids geeft een herhaalbare aanpak en behandelt ook schrikkeljaren, maandeinden, werkdagen, deadlines, tijdzones en klokwisselingen. Het doel is niet zomaar een getal, maar het getal dat past bij wat je werkelijk wilt weten.
Het korte antwoord
Bereken voor twee datums zonder tijd eerst het gewone verschil: verschil = einddatum − begindatum. Pas daarna de grensregel toe:
- Verstreken tijd of begin uitgesloten: gebruik het verschil ongewijzigd.
- Inclusief tellen: tel 1 op als begin- en einddatum beide meetellen.
- Alleen tussenliggende dagen: trek 1 af als geen van beide grenzen meetelt, maar ga nooit onder nul.
Van 2026-03-10 tot 2026-03-12 is het gewone verschil 2 dagen. Met beide genoemde datums kom je op 3; strikt ertussen ligt 1 datum.
Vier geldige manieren om hetzelfde interval te tellen
| Regel | Getelde datums | Uitkomst | Vaak gebruikt voor |
|---|---|---|---|
| Einde min begin | 10→11, 11→12 | 2 dagen | Intervalduur; overnachtingen |
| Beide datums inclusief | 10, 11, 12 | 3 datums | Aanwezigheid, reizen, campagnes |
| Beide datums exclusief | Alleen 11 | 1 tussenliggende dag | Sommige procedureregels |
Halfopen [begin, einde) | 10, 11 | 2 datums | Software, boekingen, rapportages |
Een halfopen interval bevat het begin maar niet het einde. Zo overlappen een boeking die op 12 maart eindigt en een volgende die op 12 maart begint niet op de grens. Aangrenzende intervallen kunnen bovendien zonder correctie bij elkaar worden opgeteld.
Zelfs ‘inclusief’ is onduidelijk als niet staat welke grens bedoeld wordt. Schrijf expliciet ‘beide datums meetellen’, ‘begindatum uitsluiten’ of ‘alleen volledige dagen ertussen tellen’.
Datumverschil en verstreken tijd zijn andere vragen
Een kalenderdatum is een label, niet noodzakelijk een blok van 24 uur. In Europe/Madrid liggen tussen lokale middernacht op 28 en 30 maart 2026 twee kalenderdagen, maar door het vooruitzetten van de klok slechts 47 verstreken uren. Van 24 tot 26 oktober zijn het twee kalenderdagen en door het terugzetten 49 uur.
Gaat het om kalenderdatums, werk dan met datums zonder tijd. Gaat het om verstreken tijd, vergelijk dan precieze tijdstippen in uren, minuten of seconden. Een tijdstempelverschil delen door 86.400 kan rond een klokwisseling het verkeerde aantal kalenderdagen opleveren.
Moderne tijdmodellen scheiden die begrippen. De documentatie van Temporal PlainDate behandelt een kalenderdatum los van een exact tijdstip; RFC 5545 legt uit waarom duur in dagen en weken bij klokwisselingen kalendercontext nodig heeft.
Een betrouwbare aanpak voor datums zonder tijd
- Normaliseer de invoer. Bevestig de kalender en gebruik een eenduidige notatie zoals
JJJJ-MM-DD. - Houd een datum een datum. Voeg niet ongemerkt middernacht of een tijdzone toe.
- Koppel elke datum aan een dagnummer. Bibliotheken noemen dit vaak een ordinaal of epoch day.
- Trek af. Later dagnummer min eerder dagnummer geeft het verschil met teken.
- Pas de grensregel toe. Voeg grenzen pas daarna toe of verwijder ze.
Het teken bewaart de richting: 10 naar 12 maart is +2, 12 naar 10 maart −2. Neem alleen de absolute waarde wanneer de richting echt niet van belang is. Onze datumverschilcalculator toont jaren, maanden, weken en dagen zonder datums in tijdstempels om te zetten.
Laat de kalender schrikkeljaren afhandelen
| Begin | Einde | Gewoon verschil | Beide datums inclusief |
|---|---|---|---|
| 2024-02-28 | 2024-03-01 | 2 dagen | 3 datums |
| 2025-02-28 | 2025-03-01 | 1 dag | 2 datums |
| 2026-01-01 | 2027-01-01 | 365 dagen | 366 datums |
In de gregoriaanse kalender is een jaar dat deelbaar is door 4 een schrikkeljaar, behalve een eeuwjaar dat niet ook deelbaar is door 400. Goede datumbibliotheken kennen die regel al. Altijd 365 dagen per jaar aannemen is minder betrouwbaar.
Maanden en jaren hebben geen vast aantal dagen
‘Eén maand na 31 januari’ is een beleidsvraag: klem je vast op 28 of 29 februari, laat je de datum doorlopen naar maart of weiger je hem? Eén jaar na 29 februari vereist in een niet-schrikkeljaar eveneens een regel.
- 30 verstreken dagen is een vaste duur.
- Eén kalendermaand bewaart een kalenderrelatie en vereist beleid voor het maandeinde.
- Dezelfde datum volgende maand kan onmogelijk zijn en heeft een expliciet alternatief nodig.
Als een contract of interface ‘maandelijks’ zegt, leg dan vast wat er aan het maandeinde gebeurt. Vervang een kalendermaand niet stilzwijgend door 30 dagen.
Werkdagen vereisen een werkkalender
Een weekdag is niet automatisch een werkdag. Je moet de normale werkdagen, het land of de regio, officiële en bedrijfssluitingsdagen met eventuele vervangingsdagen, de behandeling van de eerste dag en het beleid bij een niet-werkende einddag kennen.
Voor een gewone maandag-tot-vrijdagberekening kun je onze werkdagencalculator gebruiken. Voor loon, contractuele levering, gerechtelijke stukken of gereguleerde termijnen gelden de kalender en regels die de zaak echt beheersen.
Deadline-regels kunnen het gewone tellen vervangen
Juridische termijnen laten zien waarom geen enkele inclusieve instelling universeel is. Volgens de algemene EU-regels wordt de dag van de aanleiding normaal uitgesloten; weekenden en feestdagen tellen normaal mee tenzij de termijn in werkdagen luidt, en het einde kan opschuiven wanneer de laatste dag in een weekend of op een feestdag valt. Zie Verordening (EEG, Euratom) nr. 1182/71.
Rule 6 van de actuele Amerikaanse Federal Rules of Civil Procedure sluit de aanleidende dag doorgaans ook uit, telt tussenliggende weekenden en wettelijke feestdagen en verschuift zo nodig het eindpunt. In Engeland en Wales definieert Civil Procedure Rule 2.8 ‘clear days’ door begin- en gebeurtenisdag uit te sluiten, met extra regels voor korte termijnen en gesloten rechtbanken.
Onze deadlinecalculator helpt een datum te verkennen, maar kan niet bepalen welke rechtsregel geldt.
Vijf vragen voordat je telt
- Zijn de invoeren datums of precieze tijdstippen?
- Welke grenzen tellen mee? Noteer begin en einde elk als in- of uitgesloten.
- Welke kalender en tijdzone gelden?
- Hebben niet-werkdagen bijzondere regels?
- Wat gebeurt er aan lastige randen? Test dezelfde dag, omgekeerde volgorde, schrikkeldag, maandeinde, jaarwisseling en klokwisseling.
Een compacte set randgevaltests
| Geval | Verwachte gewone uitkomst | Wat dit ontdekt |
|---|---|---|
| 2026-03-10 → 2026-03-10 | 0 dagen; inclusief 1 | Dezelfde-daggrens |
| 2026-03-12 → 2026-03-10 | −2 dagen | Verloren richting |
| 2024-02-28 → 2024-03-01 | 2 dagen | Overgeslagen schrikkeldag |
| 2025-02-28 → 2025-03-01 | 1 dag | Schrikkelregel elk jaar toegepast |
| Madrid, 2026-03-28 → 2026-03-30 | 2 kalenderdagen; 47 uur | Dagen als blokken van 24 uur |
| 2026-01-31 + 1 kalendermaand | Afhankelijk van vastgelegd beleid | Maand als 30 dagen |
Noem in softwaretests altijd de conventie. ‘Dagen ertussen’ is geen specificatie; ‘begin uitsluiten en einde insluiten in Europe/Madrid’ komt in de buurt. De officiële Python datetime-documentatie onderscheidt bijvoorbeeld datumaftrekking van datetime-rekenen en de bijbehorende tijdzoneregels.
Welke calculator gebruik je?
- Datumverschil voor de kalenderafstand.
- Werkdagen wanneer gewone weekenden niet meetellen.
- Deadline om een aantal dagen op te tellen of af te trekken.
- Kalender om weekdagen en maandgrenzen te bekijken.
De kern
Er is geen uniek juist antwoord voordat grenzen en tijdsoort zijn vastgelegd. Begin met het gewone kalenderverschil en definieer vervolgens eindpunten, teken, kalender, tijdzone en eventuele werk- of rechtsregels. Eén extra zin in de specificatie voorkomt de meeste fouten van precies één dag.