Я хочу получить последний день предыдущего месяца. Но это не кажется работать:Календарь - Получить последний день месяца
Calendar cal = Calendar.getInstance();
Integer lastDay = cal.getInstance().getActualMaximum(cal.DAY_OF_MONTH);
cal.add(Calendar.MONTH, -1);
Integer prevMonth = cal.get(Calendar.MONTH);
Integer prevMonthYear = cal.get(Calendar.YEAR);
Integer lastDayPrevMonth = cal.getInstance().getActualMaximum(cal.DAY_OF_MONTH);
System.out.println("Previous month was: " + prevMonth + "-" + prevMonthYear);
System.out.println("Last day in previous month was: " + lastDayPrevMonth);
System.out.println("Last day in this month is: " + lastDay);
Воспроизводит:
I/System.out﹕: Previous month was 10-2015
I/System.out﹕: Last day in previous month was 31
I/System.out﹕: Last day in this month is 31
Так это становится в прошлом месяце, это ноябрь (10), давая, что сейчас декабрь (11). Последний день в этом месяце тоже правильно, но ясно, что последний день в предыдущем месяце не 31 было, а 30.
Почему второй getActualMaximum
дают тот же самый «последний-день-в-месяц», как первое, когда я добавляю -1 вещь?
Это может помочь некоторым пользователям http://stackoverflow.com/a/344400/3701433 – Prudhvi