How a computer works out the weekday for any date
Varje datum sedan den gregorianska kalendern trädde i kraft har exakt en korrekt veckodag, och det kan räknas ut med enbart aritmetik - ingen kalenderapp eller uppslagstabell krävs. Den underliggande idén är densamma som formaliserats av Zellers kongruens och Sakamotos metod: räkna det totala antalet dagar från en känd referenspunkt, ta sedan räkningen modulo 7 för att landa på en veckodag.
Modern programvara kör inte den klassiska Zeller-formeln bokstavligen – den spårar vanligtvis antalet dagar med hjälp av en proleptisk gregoriansk kalender internt – men resultatet är matematiskt identiskt med vad dessa penna-och-papper-algoritmer beräknar. Den konsekvensen är exakt varför den här miniräknaren, en pappersalmanacka och ett mentalt mattetrick alla är överens om samma svar för samma datum.
En-dagars (eller två-dagars) skift, år efter år
Ett vanligt år pågår 365 dagar — exakt 52 veckor plus en extra dag. Den resterande dagen är anledningen till att ett fast datum, säg den 4 juli, flyttas fram exakt en vardag varje år: tisdag ett år, onsdag nästa, och så vidare.
Skottår bryter det stadiga mönstret. Eftersom 29 februari infogas halvvägs under året, hoppar alla datum från 1 mars framåt två vardagar istället för en, jämfört med året innan. Datum i januari och februari påverkas inte förrän skottdagen faktiskt har passerat.
Det finns ytterligare en rynka vid århundradet: år som är delbara med 100 är inte skottår om de inte också är delbara med 400. År 2000 var ett skottår under den regeln; 1900 var det inte, och 2100 kommer inte att vara det heller - en detalj som spelar roll om du räknar vardagar långt in i det förflutna eller framtiden.
Kontrollerar vardagar för historiska datum
Eftersom veckodagen är en fast egenskap för själva datumet, fungerar samma beräkning för att verifiera historiska register – bekräfta att en dokumenterad händelse faktiskt hände på den veckodag som en källa hävdar, eller räkna ut vilken veckodag en avlägsen förfader föddes på.
En varning för datum före 1582: kalendern som användes före den gregorianska reformen (den julianska kalendern) körde på något annorlunda skottårsregler, så veckodagsberäkningar för datum före det bytet beror på vilken kalender som själva historiska protokollet använde.
Bortom ett enda datum: händelser och veckodagar
När du kan beräkna en veckodag för ett datum, faller ytterligare tre användbara frågor ur samma matematik:
- Next/previous occurrence — the closest date before or after a given day that falls on a specific weekday, useful for finding "the next Friday" from any starting point.
- Räkna veckodagar – hur många gånger en given veckodag (säg måndag) inträffar inom ett datumintervall, vilket är samma matematik bakom att räkna löneperioder eller återkommande mötesdatum.
- Hitta alla händelser – en fullständig lista över alla datum en specifik veckodag infaller inom ett intervall, praktiskt för att schemalägga allt som upprepas varje vecka.
Om det du istället behöver är det exakta antalet dagar mellan två datum, eller en löpande nedräkning till ett måldatum, Dagsräknare hanterar det direkt. För att lägga till eller subtrahera år, månader eller veckor från ett datum, se Datumkalkylator.