Cara Menghitung Minggu Kerja di Antara Dua Tanggal (Dan Kenapa Lebih Sulit Dari Kelihatannya)
Kamu punya dua tanggal dan perlu tahu ada berapa minggu kerja di antaranya. Kedengarannya seperti masalah lima detik. Bagi jumlah hari dengan 7, mungkin kurangi akhir pekan — selesai.
Ternyata tidak sesederhana itu, karena “minggu kerja” bukan istilah yang benar-benar presisi. Tergantung apa yang kamu hitung — masa pemberitahuan (notice period), timeline proyek, hak cuti, durasi kontrak — metode yang benar bisa berbeda, dan metode yang salah bisa meleset beberapa hari dengan dampak legal atau finansial.
Apa Itu “Minggu Kerja” Sebenarnya?
Paling sering, minggu kerja berarti 5 hari: Senin sampai Jumat. Tapi ada beberapa edge case yang perlu diketahui:
- Beberapa industri dan negara memakai minggu kerja 6 hari (Senin–Sabtu)
- Beberapa peran memakai minggu kerja 4 hari (compressed)
- Timur Tengah secara tradisional memakai Minggu–Kamis, meski banyak negara sudah bergeser ke Senin–Jumat
- Pekerja paruh waktu bisa punya minggu kerja 2, 3, atau 4 hari
Untuk artikel ini, “minggu kerja” berarti minggu standar Senin–Jumat kecuali disebutkan lain. Metodenya bisa digeneralisasi setelah kamu tahu hari kerja yang tepat untuk situasimu.
Metode 1: Minggu Kerja Penuh
Interpretasi paling sederhana: ada berapa blok Senin–Jumat yang lengkap di antara dua tanggal?
Ini biasanya yang dimaksud orang ketika bertanya “itu berapa minggu notice?” Notice 4 minggu berarti 4 blok Senin–Jumat lengkap — 20 hari kerja — terlepas dari hari apa tanggal mulai jatuh.
Cara menghitungnya:
1. Hitung total hari kalender di antara dua tanggal 2. Kurangi akhir pekan: setiap blok 7 hari penuh punya 2 hari akhir pekan 3. Perhitungkan minggu parsial di awal dan akhir
Dalam praktik, lebih mudah menghitung hari kerja langsung lalu membaginya dengan 5:
working_weeks = working_days / 5
di mana working_days adalah jumlah hari Senin–Jumat di antara dua tanggal.
Contoh: 7 April (Senin) sampai 2 Mei (Jumat)
- Hari kalender: 25
- Akhir pekan dalam rentang: 4 Sabtu + 4 Minggu = 8 hari
- Hari kerja: 25 − 8 = 17... tunggu, itu tidak benar.
Cara yang benar: hitung Senin sampai Jumat secara inklusif:
- Minggu 1: 7–11 Apr (5 hari)
- Minggu 2: 14–18 Apr (5 hari)
- Minggu 3: 21–25 Apr (5 hari)
- Minggu 4: 28 Apr–2 Mei (5 hari)
Total: 20 hari kerja = tepat 4 minggu kerja.
Karena contoh mulai hari Senin dan berakhir hari Jumat, hasilnya “rapi”. Mulai atau berakhir di tengah minggu akan menghasilkan nilai pecahan, yang membawa kita ke metode berikutnya.
Metode 2: Hari Kerja Dibagi 5
Untuk sebagian besar kebutuhan praktis — perencanaan proyek, estimasi timeline, perhitungan kapasitas — kamu tidak butuh minggu “penuh”. Kamu butuh hari kerja, dan mengekspresikan hasilnya sebagai minggu dan hari.
Rumusnya:
total_working_days = (full_weeks × 5) + working_days_in_partial_week
weeks = floor(total_working_days / 5)
remaining_days = total_working_days mod 5
Contoh: 18 Maret (Rabu) sampai 11 April (Jumat)
Hitung hari kerja:
- 18 Mar (Rab) sampai 21 Mar (Jum): 4 hari
- 24–28 Mar: 5 hari
- 31 Mar–4 Apr: 5 hari
- 7–11 Apr: 5 hari
Total: 19 hari kerja = 3 minggu dan 4 hari.
Metode ini tepat untuk timeline proyek ketika kamu bekerja dalam “kapasitas hari”, bukan minggu kalender.
Metode 3: Rentang Minggu ISO
Kadang “berapa minggu di antara” berarti: selisih nomor minggu ISO.
Contoh: suatu event berlangsung dari ISO Week 10 sampai ISO Week 23. Itu berarti durasinya 13 minggu ISO.
Perhitungan:
week_span = (end_iso_year × 52.18) + end_iso_week − (start_iso_year × 52.18) + start_iso_week
Dalam praktik, untuk tanggal di tahun yang sama:
week_span = end_iso_week − start_iso_week
Untuk tanggal yang melintasi pergantian tahun, kamu perlu memperhitungkan apakah tahun awal punya 52 atau 53 minggu:
week_span = (52_or_53_for_start_year − start_iso_week) + end_iso_week
Metode ini relevan untuk penjadwalan broadcast, perencanaan retail, dan sistem yang mengorganisasi kerja berdasarkan nomor minggu ISO, bukan berdasarkan hari kerja.
Masalah Inklusif vs Eksklusif Tanggal
Salah satu sumber error paling umum: apakah tanggal mulai dihitung, tanggal akhir dihitung, keduanya, atau tidak sama sekali.
“Notice 4 minggu mulai hari ini” bisa berarti:
- 4 minggu dari hari ini, di mana hari ini dihitung sebagai hari 1 (start inklusif): berakhir pada hari yang sama, 4 minggu kemudian
- 4 minggu setelah hari ini (start eksklusif): berakhir satu hari lebih lambat dari versi di atas
Hukum ketenagakerjaan di banyak negara menjelaskan ini secara eksplisit. Hukum ketenagakerjaan UK menghitung notice mulai dari hari setelah notice diberikan. Di AS, tergantung kontrak.
Bedanya satu hari. Dalam banyak kasus tidak masalah. Dalam sengketa kerja atau pemutusan kontrak, bisa penting.
Konvensi aman: selalu tulis “X minggu kerja dari [tanggal], inklusif/eksklusif.” Jangan biarkan ambigu.
Hari Libur Nasional: Perhitungan yang Sering Dilupakan
Perhitungan minggu kerja yang tidak memperhitungkan hari libur nasional pada dasarnya salah — karena akan menghitung waktu kerja yang sebenarnya tidak tersedia.
Masalahnya: hari libur tidak standar. Tergantung:
- Negara (Natal 25 Desember di UK; bukan hari libur nasional di Jepang)
- Wilayah dalam negara (negara bagian AS punya hari libur berbeda; Inggris dan Skotlandia punya bank holiday berbeda)
- Tahun (hari libur bergerak seperti Paskah berubah tanggal tiap tahun)
- Kontrak kerja (sebagian pekerjaan punya libur tambahan; sektor publik bisa mengamati tanggal berbeda)
Untuk estimasi kasar — “kira-kira 6 minggu kerja” — mengabaikan hari libur masih ok. Untuk perhitungan presisi — tenggat kontrak, notice, kerangka waktu legal — kamu harus menguranginya.
Tidak ada kalkulator yang bisa melakukan ini otomatis tanpa mengetahui yurisdiksi dan tahun yang spesifik. Kalkulator selisih hari antar tanggal memberi jumlah hari kerja tanpa akhir pekan; kamu kurangi hari libur lokal secara manual.
Perkiraan berguna untuk UK: sekitar 8 bank holiday per tahun, kira-kira 1.6 per bulan. Untuk perhitungan 3 bulan, itu sekitar 5 hari libur untuk dikurangkan. Untuk hari libur federal AS: 11 per tahun, kira-kira 0.9 per bulan.
Notice Period: Cara Matematika Sebenarnya Bekerja
Kontrak kerja menyatakan notice dalam minggu atau bulan. Mengubahnya menjadi hari kerja adalah tempat paling sering terjadi kesalahan.
“Notice 4 minggu” berarti 4 minggu kalender (28 hari), bukan 4 × 5 = 20 hari kerja. Jika notice diberikan pada hari Selasa, periodenya berjalan 28 hari kalender — termasuk akhir pekan. Hari terakhir notice adalah hari Selasa 4 minggu kemudian.
Ini mengejutkan orang karena mereka mengira “4 minggu” berarti 20 hari kerja. Bukan — itu berarti 28 hari kalender, dan akhir pekan tetap dihitung sebagai bagian dari notice, meski kamu tidak bekerja di akhir pekan.
“Notice 1 bulan” lebih tidak presisi. Satu bulan dari 15 Januari adalah 15 Februari. Satu bulan dari 31 Januari adalah 28 Februari (atau 29 pada tahun kabisat). Jumlah hari kalender bervariasi dari 28 sampai 31. Jumlah hari kerja di dalamnya bervariasi dari 20 sampai 23.
Minggu kerja vs minggu kalender dalam kontrak:
Jika kontrak mengatakan “notice 4 minggu kerja”, itu berarti 20 hari kerja — hanya Senin sampai Jumat. Akhir pekan tidak dihitung. Dalam kasus itu, notice yang dimulai hari Selasa akan berjalan 20 hari kerja, dan berakhir beberapa minggu kalender kemudian tergantung berapa akhir pekan yang jatuh dalam periode tersebut.
Selalu cek apakah kontrak menulis “weeks” atau “working weeks”. Bedanya bisa 8–10 hari dalam notice period yang umum.
Timeline Proyek: Minggu Usaha vs Minggu Kalender
Dalam manajemen proyek, “3 minggu kerja” dan “3 minggu kalender” bukan hal yang sama.
3 minggu effort pada kapasitas penuh = 15 hari-kerja-orang. Jika sebuah tugas butuh 3 minggu effort untuk satu orang full time, maka membutuhkan 3 minggu kalender. Jika dikerjakan dua orang, butuh 1.5 minggu kalender. Jika satu orang hanya 50% kapasitas, butuh 6 minggu kalender.
3 minggu kalender = 15 hari kerja dengan asumsi tidak ada libur, tidak ada part-time, dan tidak ada overhead switching konteks.
Perbedaan ini penting saat merencanakan tanggal rilis. Jika kamu bilang ke stakeholder fitur akan selesai “3 minggu” dan yang kamu maksud minggu kerja di 80% kapasitas plus ada hari libur di tengah, tanggal akhir kalender akan berbeda jauh dari yang mereka bayangkan.
Saat mengutip timeline:
- Sebutkan hari kerja, bukan minggu, untuk tugas di bawah sebulan
- Sebutkan tanggal akhir kalender sebagai sanity check
- Catat secara eksplisit hari libur yang ada di rentang tersebut
Menghitung Minggu Kerja dengan 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
Untuk rentang tanggal yang besar, pendekatan lebih cepat memakai aritmetika modular agar tidak perlu loop:
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;
Ringkasan Cepat
| Yang kamu butuhkan | Metode |
|---|---|
| Durasi notice period | Hari kalender (akhir pekan dihitung) |
| Kapasitas kerja proyek | Hari kerja (Sen–Jum), bagi 5 untuk minggu |
| Perencanaan broadcast/retail | Rentang minggu ISO |
| Hak cuti | Hari kerja, kurangi hari libur nasional |
| Tenggat kontrak | Hari kalender kecuali kontrak menyebut “working days” |
Kalkulator selisih hari antar tanggal menampilkan jumlah hari kalender dan hari kerja untuk rentang tanggal apa pun — berguna sebagai titik awal sebelum kamu menyesuaikan hari libur nasional di wilayahmu.


