Java では、実証済みの方法を使用して 2 つの日付間の営業日数 (土曜日と日曜日を除く) を計算できます。 .
Java 8 以降:
Java 8 以降のバージョンでは、java.time パッケージのクラスを利用すると、このタスクが簡素化されます:
<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>
Java 8 より前:
Java 8 より前のバージョンの場合は、次のアプローチを利用できます:
<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>
重要な注意事項: このメソッドは、開始日と終了日が排他的であること、つまりカウントに含まれないことを前提としています。
以上がJavaで2つの日付の間の営業日数を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。