From d3d5208a900341d2c97526671c7feffd06d329f9 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 21 Nov 2024 18:42:29 +0700 Subject: [PATCH] Tambah fungsi 'hitungHariKerja' di app.js Menambahkan fungsi `hitungHariKerja` untuk menghitung jumlah hari kerja antara dua tanggal, dengan memperhitungkan hari libur dan akhir pekan. Fungsi ini tersedia secara global melalui `window.hitungHariKerja`. --- resources/assets/js/app.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js index e69de29..c095698 100644 --- a/resources/assets/js/app.js +++ b/resources/assets/js/app.js @@ -0,0 +1,35 @@ +function hitungHariKerja(tanggalMulai, tanggalSelesai) { + tanggalMulai = new Date(tanggalMulai); + tanggalMulai.setHours(0, 0, 0, 0); + tanggalSelesai = new Date(tanggalSelesai); + tanggalSelesai.setHours(23, 59, 59, 999); + + let hariKerja = 0; + let tanggalSekarang = new Date(tanggalMulai); + + // You'll need to implement a way to get holiday dates from your server + // For this example, we'll assume you have a global variable holidayDates + // that contains an array of holiday date strings in 'YYYY-MM-DD' format + const tanggalLibur = window.holidayDates || []; + + while (tanggalSekarang <= tanggalSelesai) { + const dayOfWeek = tanggalSekarang.getDay(); + const dateString = tanggalSekarang.toISOString().split("T")[0]; + + // Check if it's not Saturday (6) or Sunday (0) and not a holiday + if ( + dayOfWeek !== 0 && + dayOfWeek !== 6 && + !tanggalLibur.includes(dateString) + ) { + hariKerja++; + } + + tanggalSekarang.setDate(tanggalSekarang.getDate() + 1); + } + + return hariKerja; +} + +// Make the function available globally +window.hitungHariKerja = hitungHariKerja;