Киньте пример, при котором мой метод выдаст ошибку. Иначе не могу сообразить, вроде все вывод корректно.
package com.javarush.task.pro.task16.task1613;
import java.nio.file.Path;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
/*
Фильтруем выходные
*/
public class Solution {
private static final int FRIDAY = 5;
private static final int SATURDAY = 6;
private static final int SUNDAY = 7;
private static final int WEEKEND_START_FRIDAY_CUT_OFF_HOUR = 22;
private static final int WEEKEND_END_SUNDAY_CUT_OFF_HOUR = 23;
public static void main(String[] args) {
List<LocalDateTime> dateTimeList = new ArrayList<>();
dateTimeList.add(LocalDateTime.of(2016, 4, 22, 18, 39));
dateTimeList.add(LocalDateTime.of(2016, 4, 22, 21, 59));
dateTimeList.add(LocalDateTime.of(2016, 4, 22, 22, 0));
dateTimeList.add(LocalDateTime.of(2016, 4, 23, 5, 0));
dateTimeList.add(LocalDateTime.of(2016, 4, 24, 8, 0));
dateTimeList.add(LocalDateTime.of(2016, 4, 24, 22, 59));
dateTimeList.add(LocalDateTime.of(2016, 4, 24, 23, 0));
dateTimeList.add(LocalDateTime.of(2016, 4, 25, 11, 5));
for (LocalDateTime dateTime : dateTimeList) {
System.out.println(dateTime + ", is weekend - " + isWeekend(dateTime));
}
}
public static boolean isWeekend(LocalDateTime dateTime) {
LocalDate localDate = dateTime.toLocalDate();
LocalTime localTime = dateTime.toLocalTime();
int weekValue = localDate.getDayOfWeek().getValue();
int dayHours = localTime.getHour();
if (FRIDAY == weekValue && dayHours >= 22)
return true;
else if (SATURDAY == weekValue)
return true;
else if (SUNDAY == weekValue && dayHours >= 1 && dayHours < 23)
return true;
else
return false;
//System.out.println(weekValue);
//System.out.println(localTime);
//System.out.println(dayHours);
//System.out.println("---------------");
}
}