java.time
LocalDate today = LocalDate.now(ZoneId.of("Pacific/Wallis"));
for (LocalDate d = today.withDayOfMonth(1); d.isBefore(today); d = d.plusDays(1)) {
DayOfWeek dow = d.getDayOfWeek();
if (! dow.equals(DayOfWeek.SATURDAY) && ! dow.equals(DayOfWeek.SUNDAY)) {
id("prevDayTrackButton").click();
TimeUnit.SECONDS.sleep(1);
}
}
Если вы хотите использовать потоковую операцию:
today.withDayOfMonth(1)
.datesUntil(today)
.filter(d -> ! d.getDayOfWeek().equals(DayOfWeek.SATURDAY)
&& ! d.getDayOfWeek().equals(DayOfWeek.SUNDAY))
.forEach(d -> {
id("prevDayTrackButton").click();
TimeUnit.SECONDS.sleep(1);
});
Я не думаю, что в этом случае мы что-то покупаем.
Класс Calendar
, который вы использовали, давно устарел и плохо спроектирован. Вместо этого я использую java.time, современный Java-интерфейс даты и времени.
Ссылка: Обучающее руководство по Oracle: Дата и время , объясняющее, как использовать java.time.