Мне нужно узнать даты на понедельник и пятницу на прошлой неделе. Для этого я получаю дату понедельника на этой неделе и вычитаю 7 дней. Это дает мне дату понедельника на прошлой неделе.
Чтобы получить дату пятницы, я должен добавить 4. Это немного смутило меня, потому что по какой-то причине первый день недели - воскресенье, а не понедельник здесь, в Великобритании.
Во всяком случае, вот как я получаю даты.
// Get the dates for last MON & FRI
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
cal.add(Calendar.DAY_OF_WEEK, -7);
cal.set(Calendar.HOUR_OF_DAY,0);
cal.set(Calendar.MINUTE,0);
cal.set(Calendar.SECOND,0);
cal.set(Calendar.MILLISECOND,0);
// Get the date on Friday
cal.add(Calendar.DAY_OF_WEEK, 4);
cal.set(Calendar.HOUR_OF_DAY,23);
cal.set(Calendar.MINUTE,59);
cal.set(Calendar.SECOND,59);
cal.set(Calendar.MILLISECOND,0);
Выше работает, но мне интересно, если что-то не так с логикой. То есть будет ли это работать в феврале, високосные годы и т. д.
Не стесняйтесь предлагать лучшее решение / подход.
Спасибо