Чтобы получить оставшиеся дни текущей недели, вам необходимо выполнить итерацию с текущей даты до следующего понедельника, как показано ниже:
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class Main {
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
LocalDate firstDayOfNextWeek = localDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
while (localDate.isBefore(firstDayOfNextWeek)) {
System.out.println(localDate);
localDate = localDate.plusDays(1);
}
}
}
Вывод:
2020-07-11
2020-07-12
Обратите внимание, что LocalDate#with
возвращает копию целевого объекта с одним измененным элементом; это неизменный эквивалент метода set
в JavaBean.
[Обновление]: Ниже приведен еще один способ (Cortesy: Basil Bourque ) сделать it:
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
LocalDate firstDayOfNextWeek = localDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
List<LocalDate> remainingDays = localDate.datesUntil(firstDayOfNextWeek)
.collect(Collectors.toList());
System.out.println(remainingDays);
}
}
Вывод:
[2020-07-11, 2020-07-12]
Отметьте LocalDate#datesUntil
, чтобы узнать больше об этом.
[Другое обновление]
Размещение этого обновления, чтобы помочь OP перечислить все дни следующей недели:
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
// Remaining days of the current week
LocalDate firstDayOfNextWeek = localDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
List<LocalDate> remainingDays = localDate.datesUntil(firstDayOfNextWeek).collect(Collectors.toList());
System.out.println(remainingDays);
// Days of next week
LocalDate firstDayOfNextToNextWeek = firstDayOfNextWeek.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
List<LocalDate> daysOfNextWeek = firstDayOfNextWeek.datesUntil(firstDayOfNextToNextWeek)
.collect(Collectors.toList());
System.out.println(daysOfNextWeek);
}
}
Вывод:
[2020-07-11, 2020-07-12]
[2020-07-13, 2020-07-14, 2020-07-15, 2020-07-16, 2020-07-17, 2020-07-18, 2020-07-19]