Учтите, что существует класс: Партнер
Class Partner {
LocalDate invoiceDate;
BigDecimal amount;
}
Теперь у меня есть список объектов-партнеров, отсортированных в порядке убывания, например:
[Partner(invoiceDate=2020-01-21, amount=400),
Partner(invoiceDate=2020-01-20, amount=400),
Partner(invoiceDate=2020-01-11, amount=400),
Partner(invoiceDate=2020-01-10, amount=400),
.....,
.....]
В В приведенном выше примере данных поле invoiceDate относится к январю. примечание: в списке будут данные за 12 месяцев или более.
Теперь
- Я хочу сгруппировать данные в 15 интервал дней .ie Первый интервал, с 1-го по 15-й день месяца [1–15]. Второй интервал, 16-й день до последнего дня месяца [16 - 30/31/28/29].
- И, наконец, суммируйте значение суммы между диапазоном дат.
Расчет по приведенным выше примерным данным: первый интервал [1-15]: 2 строки подходят => [invoiceDate = 2020-01-11 и invoiceDate = 2020-01-10] второй интервал [16-31]: 2 строки квалифицируются => [invoiceDate = 2020-01-21 and invoiceDate = 2020-01-20]
Окончательные выходные данные должны выглядит так:
[Partner(invoiceDate=2020-01-31, amount=800),
Partner(invoiceDate=2020-01-15, amount=800)]
примечание: в окончательном выводе invoiceDate должен быть последний день интервала.