Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mengira Bilangan Hari Kerja Antara Dua Tarikh di Jawa?

Bagaimana untuk Mengira Bilangan Hari Kerja Antara Dua Tarikh di Jawa?

Patricia Arquette
Patricia Arquetteasal
2024-10-25 17:36:42413semak imbas

How to Calculate the Number of Weekdays Between Two Dates in Java?

Kira Bilangan Hari Minggu Antara Dua Tarikh di Jawa

Bagi mereka yang mencari coretan kod Java untuk mengira bilangan hari perniagaan (tidak termasuk hujung minggu) antara dua tarikh, respons popular dari 2011 mencadangkan penyelesaian menggunakan kelas Kalendar. Walaupun Java 8 memperkenalkan keupayaan pengendalian masa masa moden melalui pakej java.time, kod berikut menunjukkan cara untuk mencapai pengiraan ini menggunakan API Kalendar:

<code class="java">public static int getWorkingDaysBetweenTwoDates(Date startDate, Date endDate) {
    Calendar startCal = Calendar.getInstance();
    startCal.setTime(startDate);        
    
    Calendar endCal = Calendar.getInstance();
    endCal.setTime(endDate);

    int workDays = 0;

    //Return 0 if start and end are the same
    if (startCal.getTimeInMillis() == endCal.getTimeInMillis()) {
        return 0;
    }
    
    if (startCal.getTimeInMillis() > endCal.getTimeInMillis()) {
        startCal.setTime(endDate);
        endCal.setTime(startDate);
    }

    do {
       //excluding start date
        startCal.add(Calendar.DAY_OF_MONTH, 1);
        if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
            ++workDays;
        }
    } while (startCal.getTimeInMillis() < endCal.getTimeInMillis()); //excluding end date

    return workDays;
}</code>

Perhatikan bahawa penyelesaian ini mengikut "berterusan " pendekatan mengira, tidak termasuk tarikh mula dan tamat itu sendiri. Contohnya, jika permulaan dan tamat masing-masing pada hari Isnin dan Jumaat, kaedah akan mengembalikan 4.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Bilangan Hari Kerja Antara Dua Tarikh di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn