forked from VolodymyrPortianko/topjava03
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUserMealsUtil.java
More file actions
28 lines (23 loc) · 1.08 KB
/
UserMealsUtil.java
File metadata and controls
28 lines (23 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package ru.javawebinar.topjava.util;
import ru.javawebinar.topjava.model.UserMeal;
import ru.javawebinar.topjava.to.UserMealWithExceed;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* GKislin
* 31.05.2015.
*/
public class UserMealsUtil {
public static List<UserMealWithExceed> getFilteredMealsWithExceeded(List<UserMeal> mealList, LocalTime startTime, LocalTime endTime, int caloriesPerDay) {
Map<LocalDate, Integer> caloriesSumByDate = mealList.stream().collect(Collectors.groupingBy(um -> um.getDateTime().toLocalDate(),
Collectors.summingInt(UserMeal::getCalories)));
return mealList.stream()
.filter(um->TimeUtil.isBetween(um.getDateTime().toLocalTime(), startTime, endTime))
.map(um->new UserMealWithExceed(um.getId(), um.getDateTime(), um.getDescription(), um.getCalories(),
caloriesSumByDate.get(um.getDateTime().toLocalDate())> caloriesPerDay))
.collect(Collectors.toList());
}
}