ToolDeck

Date Calculator

Beräkna skillnaden mellan två datum i år, månader, dagar och mer

Vad är datumberäkning?

Datumberäkning är processen att hitta skillnaden mellan två kalenderdatum eller lägga till respektive dra ifrån en tidsperiod från ett givet datum. En datumkalkylator online låter dig fastställa det exakta antalet dagar, veckor, månader och år mellan två datum utan manuell räkning. Det används inom projektplanering, avtalsrätt, bokföring och mjukvaruutveckling.

Komplexiteten i datumberäkning beror på den oregelbundna strukturen hos den gregorianska kalendern. Månader har 28, 29, 30 eller 31 dagar. År har 365 eller 366 dagar beroende på skottårsregler. En naiv subtraktion av dagnummer ger felaktiga resultat när datumen sträcker sig över olika månader eller år. Korrekta algoritmer för datumskilllnad måste ta hänsyn till dessa oregelbundenheter genom att gå igenom varje kalenderenhet separat.

Datumaritmetik förekommer i många programmeringssammanhang: beräkning av tokenutgång, schemaläggning av återkommande händelser, beräkning av SLA-deadlines eller mätning av förfluten tid mellan loggposter. I DevOps-arbetsflöden dyker det upp som giltighetsperioder för certifikat, frystider för driftsättningar och längder på beredskapsrotationer. Även om de flesta språk tillhandahåller datumbibliotek ger en webbläsarbaserad kalkylator omedelbara svar för snabba kontroller utan att skriva kod, installera beroenden eller öppna en REPL.

Varför använda denna datumkalkylator?

Få en omedelbar uppdelning av tiden mellan två datum, med resultat i flera enheter samtidigt. Inga formler, ingen kod, ingen registrering.

Omedelbara resultat
Välj två datum och se skillnaden i år, månader, veckor, dagar, timmar och minuter. Resultaten uppdateras när du ändrar något av datumen.
🔒
Integritetsfokuserad
Alla beräkningar körs i din webbläsare. Inga datum skickas till någon server och inget lagras eller loggas.
📅
Flera utdataenheter
Se resultatet i alla enheter samtidigt: totalt antal dagar, veckor, månader och en fullständig uppdelning i år, månader och dagar. Du behöver inte konvertera mellan enheter själv.
🔢
Inget konto krävs
Använd verktyget direkt. Det finns ingen inloggning, ingen prenumeration och ingen användningsgräns. Bokmärk och använd det när du behöver en snabb datumkontroll.

Användningsfall för datumkalkylatorn

Frontend-utveckling
Kontrollera hur många dagar det är kvar till ett lanseringsdatum för en funktion, verifiera logik för nedräkningstimers eller testa datumväljarkomponenter mot förväntade intervall.
Backend-konstruktion
Validera utgångsfönster för tokens, beräkna TTL-varaktigheter för cache eller verifiera att schemalagda jobbintervall ger rätt datum för nästa körning.
DevOps och SRE
Mät gapet mellan incidenttidsstämplar i post-mortems, beräkna ledtider för certifikatutgång eller fastställ frystider för driftsättningar under semesterperioder.
QA och testning
Generera testdata med specifika datumförskjutningar, verifiera åldersgränslogik genom att beräkna exakta åldrar från födelsedatum eller bekräfta att datumsränsvärden hanteras korrekt.
Projektledning
Beräkna sprintlängder, mät antalet arbetsdagar mellan milstolpar eller uppskatta leveranstidslinjer genom att räkna kalenderdagar från ett startdatum.
Studenter och lärande
Räkna dagar till ett prov, beräkna terminslängd eller verifiera läxsvar för datumaritmetikövningar i datavetenskapskurser.

Referens för datumsdifferensenheter

Beräkningar av datumskillnad involverar enheter av varierande längd. Månader och år har inte fast längd, vilket är varför en enkel division av totalt antal dagar kan ge felaktiga resultat. Tabellen nedan listar varje enhet och dess intervall:

EnhetMotsvarighetNotering
1 year365 or 366 daysDepends on leap year
1 month28–31 daysVaries by month
1 week7 daysFixed
1 day24 hoursFixed (ignoring DST transitions)
1 hour3,600 secondsFixed
1 minute60 secondsFixed

Vanliga datumformat

När man arbetar med datum programmatiskt avgör formatet hur en datumsträng tolkas. Att använda fel format orsakar tysta buggar. ISO 8601 är det säkraste valet för datautbyte eftersom det är entydigt och tidszonsmedvetet. Tabellen nedan listar de format du troligtvis stöter på:

FormatExempelAnvänds i
ISO 86012026-04-10T14:30:00ZAPIs, databases, logs
RFC 2822Fri, 10 Apr 2026 14:30:00 +0000Email headers, HTTP
Unix timestamp1775831400Epoch-based systems
US format04/10/2026User-facing (US locale)
European format10.04.2026User-facing (EU locale)
Short ISO2026-04-10HTML date inputs, SQL DATE

Kodexempel: beräkna dagar mellan datum

Fungerande exempel för att beräkna skillnaden mellan två datum i JavaScript, Python, Go och på kommandoraden. Varje kodavsnitt visar både beräkning av totalt antal dagar och uppdelning i kalenderenheter där språket stöder det.

JavaScript
// Calculate days between two dates
const start = new Date('2026-01-15')
const end = new Date('2026-04-10')
const diffMs = end.getTime() - start.getTime()
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24))
console.log(diffDays) // → 85

// Get year, month, day breakdown
function dateDiff(a, b) {
  let years = b.getFullYear() - a.getFullYear()
  let months = b.getMonth() - a.getMonth()
  let days = b.getDate() - a.getDate()
  if (days < 0) {
    months--
    days += new Date(b.getFullYear(), b.getMonth(), 0).getDate()
  }
  if (months < 0) { years--; months += 12 }
  return { years, months, days }
}
console.log(dateDiff(start, end)) // → { years: 0, months: 2, days: 26 }
Python
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta

start = date(2026, 1, 15)
end = date(2026, 4, 10)

# Total days
diff = (end - start).days
print(diff)  # → 85

# Year/month/day breakdown (requires python-dateutil)
rd = relativedelta(end, start)
print(f"{rd.years}y {rd.months}m {rd.days}d")  # → 0y 2m 26d

# Add 90 days to a date
future = start + timedelta(days=90)
print(future)  # → 2026-04-15
Go
package main

import (
	"fmt"
	"time"
)

func main() {
	start := time.Date(2026, 1, 15, 0, 0, 0, 0, time.UTC)
	end := time.Date(2026, 4, 10, 0, 0, 0, 0, time.UTC)

	// Total duration
	diff := end.Sub(start)
	days := int(diff.Hours() / 24)
	fmt.Println(days) // → 85

	// Add 90 days
	future := start.AddDate(0, 0, 90)
	fmt.Println(future.Format("2006-01-02")) // → 2026-04-15
}
CLI (GNU date / macOS)
# Days between two dates (GNU coreutils)
echo $(( ($(date -d "2026-04-10" +%s) - $(date -d "2026-01-15" +%s)) / 86400 ))
# → 85

# Add 90 days to a date (GNU date)
date -d "2026-01-15 + 90 days" +%Y-%m-%d
# → 2026-04-15

# macOS (BSD date) — add 90 days
date -j -v+90d -f "%Y-%m-%d" "2026-01-15" +%Y-%m-%d
# → 2026-04-15

Vanliga frågor

Hur beräknar jag antalet dagar mellan två datum?
Subtrahera det tidigare datumet från det senare för att få skillnaden i millisekunder (eller ditt språks inbyggda varaktighetstyp), och dividera sedan med antalet millisekunder på en dag (86 400 000). Detta ger totalt förflutna dagar. För en kalenderuppdelning i år, månader och återstående dagar måste du gå igenom varje enhet individuellt eftersom månader har varierande längd.
Ingår startdatumet eller slutdatumet i datumskillnaden?
Enligt konvention räknar datumskillnad dagarna mellan de två datumen, med undantag för antingen start- eller slutdatumet. Om du väljer 1 januari och 2 januari är resultatet 1 dag. Om ditt användningsfall kräver inkluderande räkning (båda ändpunkterna inkluderade) lägg till 1 till resultatet. Det här verktyget följer konventionen med exklusivt slutdatum som används av de flesta programmeringsspråk.
Hur hanteras skottår i datumberäkningar?
Ett skottår lägger till den 29 februari och gör året 366 dagar i stället för 365. Den gregorianska skottårsregeln är: delbart med 4, med undantag för sekelår som dessutom måste vara delbara med 400. Så 2024 och 2028 är skottår, 1900 var det inte, och 2000 var det. Algoritmer för datumskillnad som arbetar med kalenderenheter (år/månad/dag) hanterar detta automatiskt. Algoritmer som konverterar till totalt antal dagar måste ta hänsyn till den extra dagen när intervallet sträcker sig över en 29 februari.
Vad är skillnaden mellan kalenderdagar och arbetsdagar?
Kalenderdagar räknar varje dag inklusive helger och helgdagar. Arbetsdagar utesluter lördagar, söndagar och allmänna helgdagar. Det här verktyget beräknar kalenderdagar. För att konvertera till ungefärliga arbetsdagar multiplicerar du totalt antal kalenderdagar med 5/7. För exakta arbetstsdagsräkningar behöver du också en helgdagskalender för aktuell jurisdiktion.
Kan jag beräkna ett framtida datum genom att lägga till dagar till ett startdatum?
Ja. I JavaScript skapar du ett Date-objekt och anropar setDate(getDate() + n). I Python lägger du till timedelta(days=n) till ett datumobjekt. I Go använder du time.AddDate(0, 0, n). Det här verktyget fokuserar på skillnaden mellan två kända datum, men du kan använda det för att verifiera din aritmetik: ange startdatumet och det förväntade resultdatumet och bekräfta att utdata för totalt antal dagar matchar den förskjutning du lade till.
Varför ger olika verktyg olika resultat för månader mellan datum?
Månadsberäkning är tvetydig eftersom månader har olika längd. Tänk på 31 januari till 28 februari: är det 1 månad eller 0 månader och 28 dagar? Olika bibliotek gör olika val. Den vanligaste konventionen (som används av Pythons dateutil, Javas Period och det här verktyget) räknar en hel månad som att man når samma dag i månaden eller den sista giltiga dagen i den kortare månaden. Kontrollera alltid vilken konvention ditt bibliotek använder när du jämför resultat.
Påverkas datumberäkningen av tidszoner?
När du väljer datum utan en tidskomponent (bara år-månad-dag) är beräkningen tidszonesoberoende eftersom den verkar på kalenderdatum, inte på ögonblick i tid. Om du behöver beräkna skillnaden mellan två specifika ögonblick (inklusive tid och tidszon) bör du arbeta med fullständiga ISO 8601-tidsstämplar och konvertera båda till UTC innan du subtraherar. Det här verktyget verkar enbart på kalenderdatum.