Текущая неделя понедельника
В моем случае неделя начинается с понедельника по воскресенье. Я хочу получить текущую неделю в понедельник. Я использовал следующий код, чтобы получить дату понедельника.
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("Date " + c.getTime());
Он работает нормально для всех дней, кроме воскресенья. Если текущим днем является воскресенье, он будет давать следующую неделю в понедельник. Возможно ли получить текущую неделю в понедельник, используя API java.util.Date/Calendar, даже если это воскресенье.
Любая помощь приветствуется.
2 ответа
Вы можете сказать Calendar
класс, какой день недели следует считать первым. Попробуйте добавить следующую строку:
c.setFirstDayOfWeek(Calendar.MONDAY);
LocalDateTime thisWeeksMonday = LocalDateTime.now().with(DayOfWeek.MONDAY);
на всякий случай, что Java 8 является вариантом.
Как указано в " Получить дату первого дня недели на основе LocalDate.now() в Java 8", ваше использование может отличаться.
Что касается Java <8, вам нужно установить setFirstDayOfWeek
как упоминал Джек. Просто убедитесь, что вы установили его до изменения дня недели, например:
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("Date " + c.getTime());