I try to get the date of monday used the codes below (today is 2016/5/6)
Calendar calendar1 = Calendar.getInstance();
calendar1.setFirstDayOfWeek(Calendar.MONDAY);
calendar1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
calendar1.getTime();
But the result was 2016/4/25
, and the result should be the 2016/5/2
, and it seems that just wrong in May
And it work correct below
Calendar calendar1 = Calendar.getInstance();
calendar1.setFirstDayOfWeek(Calendar.MONDAY);
calendar1.setTime(new Date());
calendar1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
calendar1.getTime();
But while I try below
public static Calendar createCalendar(Date date, int firstDayOfWeek) {
Calendar calendar = Calendar.getInstance();
if (date == null) return calendar;
calendar.setFirstDayOfWeek(firstDayOfWeek);
calendar.setTime(date);
return calendar;
}
public static Calendar[] getWeekStartEnd(Date date) {
Calendar[] calendars = new Calendar[2];
Calendar calendar = createCalendar(date, Calendar.MONDAY);
Calendar tempCalendar1 = createCalendar(date, Calendar.MONDAY);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
tempCalendar1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
calendars[0] = calendar;
calendars[1] = tempCalendar1;
return calendars;
}
It still not work correct And I want to know the reason