Chcę uzyskać ostatni dzień poprzedniego miesiąca. Ale to nie robi wydaje się działać:Kalendarz - Pobierz ostatni dzień poprzedniego miesiąca
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);
This wyjścia:
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
Tak robi się w poprzednim miesiącu, to listopad (10), podając, że jest teraz grudzień (11). Ostatni dzień w tym miesiącu jest poprawna, ale wyraźnie, ostatni dzień w poprzednim miesiącu nie było 31, ale 30.
Dlaczego sekund getActualMaximum
dać taką samą „Last-dzień-w-miesiąc” jako pierwszy, kiedy robię coś dodać -1?
Może to pomóc niektórym użytkownikom http://stackoverflow.com/a/344400/3701433 – Prudhvi