Slik beregner du arbeidsuker mellom to datoer (og hvorfor det er vanskeligere enn det ser ut)

Du har to datoer og trenger å vite hvor mange arbeidsuker som er mellom dem. Det høres ut som en femsekundersjobb. Del antall dager på 7, trekk fra noen helger — ferdig.

Men så enkelt er det ikke, fordi «arbeidsuke» ikke er et helt presist begrep. Avhengig av hva du faktisk beregner — oppsigelsestid, prosjektperiode, ferie-/permisjonsrettigheter, kontraktsvarighet — er riktig metode ulik, og feil metode kan bomme med flere dager på måter som har juridisk eller økonomisk betydning.

Hva betyr egentlig «arbeidsuke»?

Oftest betyr arbeidsuke fem dager: mandag til fredag. Men det finnes noen viktige unntak:

  • I noen bransjer og land er 6-dagers arbeidsuke vanlig (mandag–lørdag)
  • Noen har komprimert 4-dagers arbeidsuke
  • I Midtøsten har søndag–torsdag tradisjonelt vært vanlig, selv om de fleste land har gått over til mandag–fredag
  • Deltidsansatte kan ha arbeidsuker på 2, 3 eller 4 dager

I resten av artikkelen betyr «arbeidsuke» en standard mandag–fredag-uke, med mindre vi sier noe annet. Metodene kan enkelt tilpasses når du vet hvilke dager som er arbeidsdager i din situasjon.

Metode 1: Hele arbeidsuker

Den enkleste tolkningen: hvor mange komplette mandag–fredag-blokker får plass mellom to datoer?

Det er dette de fleste mener når de spør «hvor mange ukers oppsigelse er det?». En oppsigelsestid på 4 uker betyr 4 komplette mandag–fredag-blokker — 20 arbeidsdager — uavhengig av hvilken ukedag startdatoen er.

Slik kan du tenke på beregningen:

1. Tell totalt antall kalenderdager mellom datoene 2. Trekk fra helgene: hver hel 7-dagersperiode inneholder 2 helgedager 3. Juster for deluker i starten og slutten

I praksis er det ofte enklere å telle arbeidsdager direkte og dele på 5:

working_weeks = working_days / 5

der working_days er antall mandag–fredag-dager mellom de to datoene.

Eksempel: 7. april (mandag) til 2. mai (fredag)

  • Kalenderdager: 25
  • Helger i perioden: 4 lørdager + 4 søndager = 8 dager
  • Arbeidsdager: 25 − 8 = 17... vent, det stemmer ikke.

Riktig måte: tell mandag til fredag (inkludert):

  • Uke 1: 7.–11. april (5 dager)
  • Uke 2: 14.–18. april (5 dager)
  • Uke 3: 21.–25. april (5 dager)
  • Uke 4: 28. april–2. mai (5 dager)

Totalt: 20 arbeidsdager = nøyaktig 4 arbeidsuker.

Fordi eksempelet starter på en mandag og slutter på en fredag, blir det «pent». Starter eller slutter du midt i en uke, får du et desimaltall — og da kommer vi til neste metode.

Metode 2: Arbeidsdager delt på 5

For de fleste praktiske formål — prosjektplanlegging, tidsestimater, kapasitetsberegning — trenger du ikke bare hele uker. Du trenger arbeidsdager, og så uttrykker du resultatet som uker og dager.

Formel:

total_working_days = (full_weeks × 5) + working_days_in_partial_week
weeks = floor(total_working_days / 5)
remaining_days = total_working_days mod 5

Eksempel: 18. mars (onsdag) til 11. april (fredag)

Tell arbeidsdager:

  • 18. mars (ons) til 21. mars (fre): 4 dager
  • 24.–28. mars: 5 dager
  • 31. mars–4. april: 5 dager
  • 7.–11. april: 5 dager

Totalt: 19 arbeidsdager = 3 uker og 4 dager.

Denne metoden passer for prosjektplaner der du jobber med kapasitet i dager, ikke kalenderuker.

Metode 3: ISO-ukespenn

Noen ganger betyr «hvor mange uker mellom» egentlig: hva er forskjellen i ISO-ukenummer?

Eksempel: Et arrangement varer fra ISO-uke 10 til ISO-uke 23. Det er 13 ISO-uker i varighet.

Beregningen:

week_span = (end_iso_year × 52.18) + end_iso_week − (start_iso_year × 52.18) + start_iso_week

I praksis, for datoer innenfor samme år:

week_span = end_iso_week − start_iso_week

For datoer som krysser et årsskifte, må du ta hensyn til om startåret hadde 52 eller 53 uker:

week_span = (52_or_53_for_start_year − start_iso_week) + end_iso_week

Denne metoden er relevant for kringkastingsplanlegging, detaljhandel/planogrammer og andre systemer som organiserer arbeid etter ISO-ukenummer i stedet for arbeidsdager.

Inkluderer du startdatoen, sluttdatoen — eller begge?

En av de vanligste feilkildene er om du skal telle startdatoen, sluttdatoen, begge eller ingen.

«4 ukers oppsigelsestid fra i dag» kan bety:

  • 4 uker fra i dag, der i dag er dag 1 (inkluderende start): perioden slutter på samme ukedag, 4 uker senere
  • 4 uker etter i dag (ekskluderende start): perioden slutter én dag senere enn over

Arbeidsretten i mange land sier eksplisitt hva som gjelder. I Storbritannia regnes oppsigelsestiden fra dagen etter at oppsigelsen gis. I USA varierer det etter kontrakt.

Forskjellen er én dag. I de fleste tilfeller spiller det ingen rolle. I tvister eller ved kontraktsoppsigelser kan det gjøre det.

Trygg praksis: spesifiser alltid «X arbeidsuker fra [dato], inkl./ekskl.». Ikke la det være uklart.

Helligdager: Beregningen alle glemmer

Arbeidsukeberegninger som ikke tar hensyn til helligdager, er feil per definisjon — de overvurderer tilgjengelig arbeidstid.

Utfordringen er at helligdager ikke er standardiserte. De varierer etter:

  • Land (første juledag er 25. desember i Storbritannia; i Japan er det ikke en offentlig fridag)
  • Region i et land (ulike amerikanske delstater har ulike fridager; England og Skottland har ulike bank holidays)
  • År (bevegelige høytider som påske faller på ulike datoer hvert år)
  • Arbeidsavtale (noen har ekstra fridager; i offentlig sektor kan andre datoer gjelde)

For grove estimater — «det er omtrent 6 arbeidsuker» — er det greit å ignorere helligdager. For presise beregninger — kontraktsfrister, oppsigelsestid, juridiske frister — må du trekke fra relevante helligdager.

Ingen kalkulator kan gjøre dette automatisk uten å kjenne jurisdiksjon og hvilket år det gjelder. Kalkulatoren for dager mellom datoer gir deg antall arbeidsdager uten helger; deretter trekker du fra lokale helligdager manuelt.

En nyttig tommelfingerregel for Storbritannia: ca. 8 bank holidays i året, omtrent 1,6 per måned. For en 3-måneders periode er det rundt 5 fridager å trekke fra. For amerikanske føderale fridager: 11 i året, omtrent 0,9 per måned.

Oppsigelsestid: Slik fungerer regnestykket i praksis

Arbeidskontrakter oppgir ofte oppsigelsestid i uker eller måneder. Å gjøre dette om til arbeidsdager er der feil oppstår oftest.

«4 ukers oppsigelse» betyr 4 kalenderuker (28 dager), ikke 4 × 5 = 20 arbeidsdager. Gis oppsigelsen på en tirsdag, løper perioden i 28 kalenderdager — som inkluderer helger. Siste dag i oppsigelsestiden blir tirsdagen 4 uker senere.

Det overrasker mange, fordi de forventer at «4 uker» betyr 20 arbeidsdager. Det gjør det ikke — det betyr 28 kalenderdager, og helgene teller fortsatt i oppsigelsestiden selv om du ikke jobber dem.

«1 måneds oppsigelse» er enda mindre presist. En måned fra 15. januar er 15. februar. En måned fra 31. januar er 28. februar (eller 29 i skuddår). Antall kalenderdager varierer fra 28 til 31. Antall arbeidsdager i den måneden varierer gjerne fra 20 til 23.

Arbeidsuker vs kalenderuker i kontrakter:

Hvis en kontrakt sier «4 arbeidsukers oppsigelse», betyr det 20 arbeidsdager — kun mandag til fredag. Helger telles ikke. Da vil en oppsigelsestid som starter på en tirsdag løpe i 20 arbeidsdager og ende flere kalenderuker senere, avhengig av hvor mange helger som faller i perioden.

Sjekk alltid om kontrakten sier «uker» eller «arbeidsuker». Forskjellen kan være 8–10 dager i en typisk oppsigelsesperiode.

Prosjektplaner: Arbeidsuker (innsats) vs kalenderuker

I prosjektstyring er «3 ukers arbeid» og «3 kalenderuker» ikke det samme.

3 ukers innsats på full kapasitet = 15 person-arbeidsdager. Hvis en oppgave er 3 ukers innsats for én person som jobber fulltid, tar den 3 kalenderuker. Hvis to personer deler på den, tar den 1,5 kalenderuker. Hvis én person jobber i 50 % stilling, tar det 6 kalenderuker.

3 kalenderuker = 15 arbeidsdager, forutsatt ingen helligdager, ingen deltidsstillinger, og ingen overhead fra kontekstbytter.

Skillet er viktig når du planlegger leveringsdatoer. Hvis du sier til en interessent at en funksjon tar «3 uker», og du mener arbeidsuker med 80 % kapasitet og en helligdag midt i perioden, blir kalenderdatoen ganske annerledes enn det de ser for seg.

Når du anslår tidslinjer:

  • Oppgi arbeidsdager, ikke uker, for oppgaver som er kortere enn en måned
  • Oppgi kalenderdato for slutt som en sanity check
  • Nevn eksplisitt eventuelle helligdager i perioden

Slik kan du beregne arbeidsuker i kode

Python:

from datetime import date, timedelta

def working_days(start: date, end: date) -> int:
    total = 0
    current = start
    while current <= end:
        if current.weekday() < 5:  # 0=Mon, 4=Fri
            total += 1
        current += timedelta(days=1)
    return total

def working_weeks(start: date, end: date) -> float:
    return working_days(start, end) / 5

# Example
start = date(2026, 4, 7)
end = date(2026, 5, 2)
print(working_days(start, end))   # 20
print(working_weeks(start, end))  # 4.0

For lange perioder er en raskere tilnærming å bruke modular aritmetikk for å slippe å iterere dag for dag:

def working_days_fast(start: date, end: date) -> int:
    days = (end - start).days + 1
    full_weeks, remainder = divmod(days, 7)
    working = full_weeks * 5
    # Count working days in the partial week
    start_dow = start.weekday()  # 0=Mon
    for i in range(remainder):
        if (start_dow + i) % 7 < 5:
            working += 1
    return working

JavaScript:

function workingDays(start, end) {
  let count = 0
  const current = new Date(start)
  while (current <= end) {
    const day = current.getDay()
    if (day !== 0 && day !== 6) count++  // 0=Sun, 6=Sat
    current.setDate(current.getDate() + 1)
  }
  return count
}

function workingWeeks(start, end) {
  return workingDays(start, end) / 5
}

SQL (PostgreSQL):

-- Working days between two dates (excluding weekends)
SELECT
  (EXTRACT(DOW FROM end_date) - EXTRACT(DOW FROM start_date))::int +
  ((end_date - start_date) / 7) * 5 +
  CASE WHEN EXTRACT(DOW FROM start_date) = 0 THEN 1 ELSE 0 END +
  CASE WHEN EXTRACT(DOW FROM end_date) = 6 THEN -1 ELSE 0 END
AS working_days
FROM (SELECT DATE '2026-04-07' AS start_date, DATE '2026-05-02' AS end_date) t;

Kjapp oversikt

Hva du vil finne utMetode
OppsigelsestidKalenderdager (helger teller)
ProsjektkapasitetArbeidsdager (man–fre), del på 5 for uker
Kringkasting/detaljhandelISO-ukespenn
Ferie-/fraværsrettigheterArbeidsdager, trekk fra helligdager
KontraktsfristerKalenderdager med mindre kontrakten sier «arbeidsdager»

Kalkulatoren for dager mellom datoer viser både kalenderdager og arbeidsdager for en periode — nyttig som utgangspunkt før du justerer for helligdager der du bor.

Relaterte artikler