Для решения данной задачи вам потребуется использовать язык программирования Java и подходящие библиотеки или фреймворки для работы с датами и суммирования данных.
Первым шагом нужно определить структуру данных, которая будет представлять информацию о поступлениях каждого маршрута за 7 дней. Например, можно использовать класс с полями для идентификатора маршрута, даты и суммы поступлений.
public class Revenue { private String routeId; private Date date; private double amount; // геттеры и сеттеры для полей }
Далее вам нужно получить данные о поступлениях из какого-то источника, такого как база данных или файл. Для примера, предположим, что у вас есть коллекция объектов типа Revenue, содержащая все данные о поступлениях.
List<Revenue> revenueData = new ArrayList<>(); // заполнение коллекции данными о поступлениях
Для нахождения итоговых поступлений каждого маршрута за 7 дней вам потребуется выполнить следующие шаги:
1. Отфильтровать данные по датам в пределах последних 7 дней. Для этого создадим объект типа Calendar и установим его в сегодняшнюю дату минус 6 дней.
Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_YEAR, -6); Date sevenDaysAgo = calendar.getTime();
2. Отфильтровать данные по датам, чтобы оставить только те, которые находятся в пределах последних 7 дней.
List<Revenue> filteredData = revenueData.stream() .filter(revenue -> revenue.getDate().after(sevenDaysAgo)) .collect(Collectors.toList());
3. Сгруппировать данные по идентификатору маршрута.
Map<String, List<Revenue>> groupedData = filteredData.stream() .collect(Collectors.groupingBy(Revenue::getRouteId));
4. Произвести суммирование поступлений для каждого маршрута.
Map<String, Double> totalRevenues = new HashMap<>(); for (String routeId : groupedData.keySet()) { double total = groupedData.get(routeId).stream() .mapToDouble(Revenue::getAmount) .sum(); totalRevenues.put(routeId, total); }
Теперь у вас есть словарь totalRevenues
, где ключами являются идентификаторы маршрутов, а значениями - итоговые поступления каждого маршрута за последние 7 дней.
Обратите внимание, что приведенный код является примером и предполагает, что у вас уже есть данные о поступлениях. Необходимо приспособить его под вашу конкретную ситуацию, включая способ получения данных и формат хранения.