Мне нужно вычислить предыдущий период (предыдущий месяц, неделю и т. д.). ). Я пытался сделать это с помощью функций LocalDateTime. Например. используя getMonthOfYear() - 1 для периода месяца, но что делать с последним днем (beforeDayTo)?
Например. Сентябрьский метод getDayOfMonth() возвращает 30, но для предыдущего периода (август) мне нужно 31 и т. д.
Код: Выделить всё
Long fromDateMillis = 1440277200000L;
Long toDateMillis = 1440363599000L;
LocalDateTime fromLocalDate = new LocalDateTime(fromDateMillis);
LocalDateTime toLocalDate = new LocalDateTime(toDateMillis)
int beforeYear = fromLocalDate.getYear();
int beforeMonthFrom = fromLocalDate.getMonthOfYear() - 1;
int beforeMonthTo = toLocalDate.getMonthOfYear() - 1;
int beforeDayFrom = fromLocalDate.getDayOfMonth();
int beforeDayTo = toLocalDate.getDayOfMonth();
Timestamp prevFromDate = Timestamp
.valueOf(java.time.LocalDateTime.of(beforeYear, beforeMonthFrom, 1, 0, 0, 0));
Timestamp prevToDate = Timestamp
.valueOf(java.time.LocalDateTime.of(beforeYear, beforeMonthTo, beforeDayTo, 0, 0, 0));
Подробнее здесь: https://stackoverflow.com/questions/324 ... dar-period
Мобильная версия