Научитесь проверять, является ли заданная дата выходным днем в Java. Мы научимся проверять, используя java.util.Date, а также классы Java 8 java.time.LocalDate.
В приведенных примерах мы предполагаем, что выходным днем является либо суббота, либо воскресенье. Остальные пять дней недели — будни.
1. Проверка выходных с помощью LocalDate
Метод LocalDate.get(ChronoField.DAY_OF_WEEK) возвращает целочисленное значение в диапазоне от 1 до 7. Каждое целочисленное значение представляет отдельный день недели.
1 представляет понедельник и т. д. 6 представляет субботу, а 7 представляет воскресенье.
Сравнивая указанное выше целочисленное значение с днями в перечислении DayOfWeek, мы можем определить, является ли дата будним или выходным днем.
import java.time.DayOfWeek;import java.time.LocalDate;import java.time.temporal.ChronoField;public class Main{public static void main(final String[] args){LocalDate today = LocalDate.now();System.out.println("Is weekend : " + isWeekend(today));LocalDate someDate = LocalDate.of(2021, 1, 2); // 2nd-Jan-2021System.out.println("Is weekend : " + isWeekend(someDate));}public static boolean isWeekend(final LocalDate ld){DayOfWeek day = DayOfWeek.of(ld.get(ChronoField.DAY_OF_WEEK));return day == DayOfWeek.SUNDAY || day == DayOfWeek.SATURDAY;}}
2. Проверка выходных с использованием классов дат и календаря
Подобно новому API даты и времени Java 8, в Java 7 также был метод Calendar.get(Calendar.DAY_OF_WEEK), который возвращал целочисленное значение, представляющее день недели.
Целое значение находится в диапазоне от 1 до 7, а неделя начинается с воскресенья(1) и заканчивается в субботу(7).
Чтобы проверить, является ли заданная дата будним или выходным днем, нам необходимо преобразовать экземпляр java.util.Date в java.util.Calendar и выполнить вышеупомянутое сравнение.
import java.util.Calendar;import java.util.Date;public class Main{public static void main(final String[] args){Date today = new Date();System.out.println("Is weekend : " + isWeekend(today));@SuppressWarnings("deprecation")Date someDate = new Date(2021, 0, 2);System.out.println("Is weekend : " + isWeekend(someDate));}public static boolean isWeekend(final Date d){Calendar cal = Calendar.getInstance();cal.setTime(d);int day = cal.get(Calendar.DAY_OF_WEEK);return day == Calendar.SATURDAY || day == Calendar.SUNDAY;}}