- 日付の差を計算する方法:
Java 8以降では、
java.time.LocalDate
クラスを使用して日付の差を計算することができます。以下のコードは、2つの日付間の日数の差を取得します。
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
LocalDate startDate = LocalDate.of(2024, 1, 1);
LocalDate endDate = LocalDate.of(2024, 1, 31);
long difference = ChronoUnit.DAYS.between(startDate, endDate);
System.out.println("日数の差: " + difference);
}
}
- 週末を除外する方法: 上記のコードでは、週末を考慮せずに日数の差を計算しています。しかし、週末を除外するためには追加の処理が必要です。以下のコードは、週末を除いた日数の差を取得する方法を示しています。
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
LocalDate startDate = LocalDate.of(2024, 1, 1);
LocalDate endDate = LocalDate.of(2024, 1, 31);
long difference = countBusinessDays(startDate, endDate);
System.out.println("週末を除いた日数の差: " + difference);
}
public static long countBusinessDays(LocalDate startDate, LocalDate endDate) {
long days = ChronoUnit.DAYS.between(startDate, endDate);
long businessDays = 0;
for (int i = 0; i <= days; i++) {
LocalDate date = startDate.plusDays(i);
if (date.getDayOfWeek() != DayOfWeek.SATURDAY && date.getDayOfWeek() != DayOfWeek.SUNDAY) {
businessDays++;
}
}
return businessDays;
}
}
上記のコードでは、countBusinessDays
メソッドを使用して週末を除いた日数の差を計算しています。countBusinessDays
メソッドでは、指定された期間内の各日付が週末でない場合にのみ、businessDays
のカウントをインクリメントします。
以上がJavaで週末を除いた日数の差を取得する方法です。これを参考にして、目的に応じたコードを作成してみてください。