In Java kann die Berechnung der Anzahl der Werktage (außer Samstage und Sonntage) zwischen zwei Daten mit bewährten Methoden erfolgen .
Java 8 und höher:
Für Java 8 und spätere Versionen vereinfacht die Nutzung von Klassen aus dem java.time-Paket diese Aufgabe:
<code class="java">import java.time.LocalDate; import java.time.temporal.ChronoUnit; public class BusinessDaysCalculator { public static int getWorkingDaysBetweenTwoDates(LocalDate startDate, LocalDate endDate) { return (int) ChronoUnit.DAYS.between(startDate, endDate) - getWeekends(startDate, endDate); } private static int getWeekends(LocalDate startDate, LocalDate endDate) { return (int) Math.floor(ChronoUnit.DAYS.between(startDate, endDate) / 7) * 2; } }</code>
Vor Java 8:
Für Versionen vor Java 8 kann der folgende Ansatz verwendet werden:
<code class="java">import java.util.Calendar; public class BusinessDaysCalculator { 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; if (startCal.getTimeInMillis() == endCal.getTimeInMillis()) { return 0; } if (startCal.getTimeInMillis() > endCal.getTimeInMillis()) { startCal.setTime(endDate); endCal.setTime(startDate); } do { 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()); return workDays; } }</code>
Wichtiger Hinweis: Die Methoden gehen davon aus, dass das Start- und Enddatum exklusiv sind, das heißt, sie werden nicht in die Zählung einbezogen.
Das obige ist der detaillierte Inhalt vonWie berechnet man die Anzahl der Werktage zwischen zwei Daten in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!