Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Sesuai pertanyaan, saya ingin menemukan tanggal yang akan datang berdasarkan jumlah hari tertentu. Itu harus mengecualikan akhir pekan dan hari libur yang disimpan sebagai larik. Miliki kode ini di bawah tetapi tanggal yang akan datang yang dihasilkan salah. Ada saran?

   var holiday = [];
        holiday[0] = new Date(2013, 11, 12);
        holiday[1] = new Date(2013, 11, 13);

        var startDate = new Date();
        var endDate = "", noOfDaysToAdd = 13, count = 0;
        while (count < noOfDaysToAdd) {
            endDate = new Date(startDate.setDate(startDate.getDate() + 1));
            if (endDate.getDay() != 0 && endDate.getDay() != 6) {
                // Date.getDay() gives weekday starting from 0(Sunday) to
                // 6(Saturday)
                for ( var i = 0; i < holiday.length; i++) {
                    if (endDate != holiday[i]) { //If days are not holidays
                        count++;
                    }
                }
            }
        }
        alert(endDate);

javascript

0 0

Membagikan

  • 4 Kontributor
  • 4 Balasan
  • 4K Tampilan
  • 3 Tahun Rentang Diskusi
  • Pos Terbaru Pos Terbaru oleh rubberman

Jawaban yang Direkomendasikan

Dijawab oleh tukang karet 1.355 dalam

Tidak ada cara selain cara yang benar untuk menghitung tanggal - Julian dan Gregorian. . -)

Semua 4 Balasan

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

stbuchok

9 Tahun Lalu

Ini seharusnya berhasil. Memberi saya 27 November sebagai hasilnya saat dijalankan pada 6 November

var holiday = [];
        holiday[0] = new Date(2013, 10, 12);//remember that month is 0 to 11
        holiday[1] = new Date(2013, 10, 13);//remember that month is 0 to 11
        var startDate = new Date();
        var endDate = new Date(), noOfDaysToAdd = 13, count = 0;

        while (count < noOfDaysToAdd) {

            endDate.setDate(endDate.getDate()+1)

            // Date.getDay() gives weekday starting from 0(Sunday) to
            // 6(Saturday)
            if (endDate.getDay() != 0 && endDate.getDay() != 6 && !isHoliday(endDate, holiday)) {
                count++;
            }
        }

function isHoliday(dt, arr){
    var bln = false;

    for ( var i = 0; i < arr.length; i++) {
        if (compare(dt, arr[i])) { //If days are not holidays
            bln = true;
            break;
        }
    }

    return bln;
}

function compare(dt1, dt2){
    var equal = false;

    if(dt1.getDate() == dt2.getDate() && dt1.getMonth() == dt2.getMonth() && dt1.getFullYear() == dt2.getFullYear()) {
        equal = true;
    }

    return equal;
}

        alert(endDate);
_

0 0

Membagikan

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Miiro 0 Poster Pemula

5 tahun lalu

apakah kode ini menghitung tanggal antara bulan misalnya. 1/agustus/2017 hingga 30/sep/2017 yang dapat memberi Anda tanggal akhir, dan pertanyaan saya yang lain adalah var holiday [] apakah Anda menambahkan hari libur secara manual?

Bagaimana jika Anda tidak bekerja secara tradisional, akhir pekan dua hari berturut-turut?

Bagaimana jika Anda tidak ingin menghitung hari libur?

Mari saksikan trik luar biasa yang memungkinkan Anda menghitung jumlah hari di antara dua tanggal dan melewatkan kombinasi hari apa pun yang Anda inginkan

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Seperti biasa, kita mulai dengan satu set data. tanggal mulai, dan tanggal akhir

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Metode paling sederhana dan paling umum untuk menghitung jumlah hari antara dua tanggal adalah dengan mengurangkan tanggal terakhir dari tanggal sebelumnya

=B2 – A2

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Karena Excel menyimpan tanggal sebagai bilangan bulat, sangat mudah untuk menghitung selisih antara dua tanggal

Jika kita menambahkan kumpulan tanggal kedua dan mengisi rumusnya, kita dapat menghitung jumlah hari yang berbeda

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

WASPADALAH…

Jika kita memeriksa tanggal pada kalender, kita melihat bahwa contoh pertama (naungan biru) melintasi 13 hari sedangkan contoh kedua (naungan cokelat) melintasi 7 hari

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Alasannya adalah karena hari pertama tidak dihitung. Hari pertama tidak terjadi sampai 24 jam penuh telah berlalu, menempatkan Anda pada hari kedua

Jika Anda perlu menyertakan hari pertama dalam hasil, Anda selalu dapat mengubah rumus untuk menambahkan 1 ke hasil

=B2 – A2 + 1

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Excel Essentials untuk Dunia Nyata - Kursus Lengkap

Pelajari Excel dari Awal atau Isi Kesenjangan

Menjadi Percaya Diri

Dikemas dengan Tantangan & File (Excel 2016, 2019, Office 365)

DAPATKAN AKSES

Tidak termasuk akhir pekan dan hari libur

Misalkan kita hanya ingin menghitung jumlah hari "kerja"?

Saat memberi tahu Excel tentang hari libur spesifik Anda (secara teknis, ini bisa menjadi hari APAPUN yang ingin Anda lewati, bukan hanya hari libur yang disetujui), Anda perlu membuat daftar hari yang tidak diinginkan di suatu tempat di buku kerja Anda

Di bawah ini kami telah membuat di sel D7 hingga D9 daftar pendek hari yang akan kami abaikan selama perhitungan

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Masukkan Fungsi NETWORKDAYS

Fungsi NETWORKDAYS mengembalikan jumlah seluruh hari kerja antara tanggal_mulai dan tanggal_akhir. Hari kerja tidak termasuk akhir pekan dan tanggal apa pun yang diidentifikasi sebagai hari libur

Fungsi ini sudah ada cukup lama, yang berarti telah mengalami beberapa perubahan

Mempertimbangkan tidak semua pengguna mengamati jumlah hari yang sama untuk akhir pekan, apalagi hari yang sama dalam seminggu, versi yang lebih kuat dari fungsi NETWORKDAYS dikembangkan. Selamat datang di NETWORKDAYS. Fungsi INTL untuk pesta

NETWORKDAYS. Fungsi INTL, diperkenalkan di sekitar Excel 2010, memiliki argumen tambahan yang memungkinkan Anda untuk menentukan hari-hari akhir pekan tersebut diamati. Fungsi NETWORKDAYS asli dikodekan keras untuk mengamati akhir pekan pada hari Sabtu dan Minggu

Sintaks untuk NETWORKDAYS. Fungsi INTL adalah sebagai berikut

NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
_

NETWORKDAYS. Sintaks fungsi INTL memiliki argumen berikut

start_date dan end_date – Wajib. Ini adalah tanggal-tanggal di mana selisihnya akan dihitung. start_date bisa lebih awal dari, sama dengan, atau lebih lambat dari end_date

[akhir pekan] – Opsional. Menunjukkan hari dalam seminggu yang merupakan hari akhir pekan dan tidak termasuk dalam jumlah hari kerja penuh antara tanggal_mulai dan tanggal_akhir. [akhir pekan] adalah angka atau string akhir pekan yang menentukan kapan akhir pekan terjadi

[liburan] – Opsional. Satu set opsional dari satu atau lebih tanggal yang akan dikecualikan dari kalender hari kerja. Hari libur harus berupa rentang sel yang berisi tanggal, atau konstanta larik dari nilai seri yang mewakili tanggal tersebut. Pengurutan tanggal atau nilai serial pada hari libur dapat dilakukan secara arbitrer

Untuk argumen [akhir pekan], di bawah ini adalah tabel kode yang menentukan berbagai kombinasi akhir pekan

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Menghitung Selisih Tanggal Tanpa Akhir Pekan Default

Mari kita mulai dengan perhitungan sederhana untuk menentukan jumlah hari antara 2 Juni dan 14 Juni

=NETWORKDAYS.INTL(A2, B2)

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Jika kami ingin menerima kombinasi akhir pekan "Sabtu/Minggu" default, kami tidak perlu menambahkan apa pun ke rumus karena hari-hari tersebut adalah fungsi default

CATATAN. Saat menggunakan fungsi untuk menentukan jumlah hari, hari pertama dan hari terakhir (mis. e. , [tanggal_mulai] dan [tanggal_akhir]) dihitung dalam hasil

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Melewatkan Liburan

Sekarang mari kita hitung jumlah hari antara 2 Juni dan 14 Juni tidak termasuk akhir pekan (5, 6, 12, & 13), serta tanggal liburan yang tercantum dalam rentang sel D7 hingga D9

Saat kami memasukkan rumus yang sama dari atas ketika kami mencapai argumen ketiga [akhir pekan] kami disajikan daftar kombinasi dua hari dan satu akhir pekan

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Kami akan tetap menggunakan kombinasi default “Sabtu/Minggu” dan memilih kode nomor 1

Untuk argumen keempat [hari libur], kami memilih rentang sel D7. D9 dan menguncinya sebagai absolute reference agar tidak berubah saat kita mengulang rumus untuk contoh lain

=NETWORKDAYS.INTL(A2, B2, 1, $D$7:$D$9)
_

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Mengisi rumus ke contoh berikutnya, kita melihat bahwa 3 hari memenuhi syarat sebagai hari kerja

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Menguasai Fungsi Excel di Office 365 & Office 2021 - Kursus Lengkap

Excel telah Berubah Selamanya. JANGAN LEWATKAN

DAPATKAN AKSES

TRIK BONUS – Menentukan Hari Hidup/Mati Khusus   Pola

Kemampuan untuk memilih dari satu atau dua hari akhir pekan berturut-turut dibangun langsung ke dalam NETWORKDAYS. fungsi INTL

Tetapi bagaimana jika jadwal hari libur Anda sedikit lebih tidak konvensional?

NETWORKDAY. INTL tidak memiliki kombinasi aktif/nonaktif seperti itu

Kabar baiknya adalah Anda dapat membuat kombinasi hari hidup/mati yang Anda perlukan dengan trik yang sangat apik

Mulailah dengan membuat NETWORKDAYS. Fungsi INTL dengan tanggal mulai dan akhir yang dinyatakan

=NETWORKDAYS.INTL(A2, B2

Inilah triknya. untuk hari dan hari libur kita akan membuat urutan nol dan satu yang masing-masing mewakili hari kerja dan bukan hari kerja

=NETWORKDAYS.INTL(A2, B2, “0011101”)
_

Jika membantu, pikirkan nol sebagai "mata terbuka" dan satu as “eyes closed”.  The formulas will only include days it can “see” when its eyes are open.

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Mengisi rumus ke contoh berikutnya, kita melihat bahwa 3 hari memenuhi syarat sebagai hari kerja

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Untuk Petualang Diantara Kita

Anda mungkin berpikir saya membuat kalender dengan mengetikkan nilai statis di rentang G4 hingga M8

Kenyataannya adalah kalender dapat diubah ke bulan yang berbeda dan hari-hari akan secara otomatis memperbarui diri

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Ini dicapai dengan menggunakan fungsi Array Dinamis baru yang disebut SEQUENCE yang tersedia untuk pelanggan Office 365

Memilih sel G4 mengungkapkan rumus tunggal berikut yang menyebar ke seluruh rentang sel kalender

=IF(MONTH(SEQUENCE(6, 7, H2 - WEEKDAY(H2, 3), 1) ) = MONTH(H2), DAY(SEQUENCE(6, 7, H2 - WEEKDAY(H2, 3), 1) ), "")
_

Mungkin akan tampak lebih mudah dibaca dengan beberapa jeda baris untuk memisahkan segmen utama

Bagaimana Anda menghitung hari kerja dalam javascript tidak termasuk akhir pekan dan hari libur?

Jika Anda ingin melihat versi kalender ini diproduksi di posting sebelumnya, lihat tautan berikut

Bagaimana Anda menghitung hari kerja tidak termasuk akhir pekan dan hari libur?

Tambahkan hari kerja kecuali akhir pekan dengan formula . Tip. Dalam rumusnya, A2 adalah tanggal mulai, B2 adalah hari yang ingin ditambahkan. Sekarang tanggal akhir yang menambah 45 hari kerja tidak termasuk akhir pekan telah ditampilkan. =WORKDAY(A2,B2), and press Enter key to get result. Tip: In the formula, A2 is the start date, B2 is the days you want to add. Now the end date which add 45 business days excluding weekends has been shown.

Bagaimana cara mengecualikan hari Sabtu dan Minggu di Javascript?

6 Jawaban .
Dapatkan jumlah total hari penuh antara dua tanggal
Bagilah dengan 7 untuk mendapatkan jumlah seluruh minggu
Kalikan jumlah minggu dengan dua untuk mendapatkan jumlah hari akhir pekan
Kurangi jumlah hari akhir pekan dari keseluruhan untuk mendapatkan hari kerja

Bagaimana Anda menghitung tanggal antara dua tanggal tidak termasuk akhir pekan?

Jika Anda ingin menghitung selisih antara dua tanggal dengan mengecualikan akhir pekan dan hari libur, gunakan fungsi NETWORKDAYS sebagai gantinya. Ini juga mencari 3 argumen. tanggal mulai, tanggal akhir, dan hari libur opsional. Berbeda dengan fungsi WORKDAY, fungsi NETWORKDAYS menyertakan atau menghitung hari mulai.

Bagaimana cara melewatkan akhir pekan di js?

Jika set data Anda mengecualikan hari non-kerja, Anda juga dapat melewatkannya pada sumbu dengan menyetel properti workdaysOnly ke true . Gunakan larik workWeek untuk menentukan hari mana yang merupakan hari kerja.