JAVA - LocalDate.plusDay() doesn't work properly [duplicate]

社会主义新天地 提交于 2021-01-28 09:08:25

问题


I want to create method thatd add trainings which belongs to some trainingCycle to calendar. Problably I made some mistake becouse it's adding all trainings to only one day.

TrainingCycle model class:

@DynamoDBTable(tableName = "trainingCycle")
public class TrainingCycle extends Request {
private String id;
private String cycleName;
private Long cycleTime;
private LocalDateTime startTime;
private List<List<Training>> trainingsForDay;

Training model class:

@DynamoDBTable(tableName = "training")
@DynamoDBDocument
public class Training extends Request {

private String id;
private String trainingName;
private Integer predictedCaloriesToBurn;
private Integer burnedCalories;
private LocalDateTime startTime;
private LocalDateTime endTime;
private List<Exercise> exerciseList;
private List<TrainingLabels> trainingLabels;
private boolean approved;
private ActivityDay activityDay;

AddTrainingCycle method:

    public List<Day> addTrainingCycle(String userId, TrainingCycle trainingCycle, LocalDate localDate) {

    List<Day> days = new ArrayList<>();
    for (List<Training> trainings : trainingCycle.getTrainingsForDay()) {
        if (trainings == null || trainings.isEmpty()) {
            localDate.plusDays(1);
        } else {
            Day actualDay = getActivityBoardDay(localDate, userId);
            actualDay.getTrainings().addAll(trainings);
            localDate.plusDays(1);
            days.add(actualDay);
        }
    }
    return days;
}

I've created test method and as I said - it's adding all of trainings but only for one day from argument, it's not increasing LocalDate. Can someone help me with that?


回答1:


LocalDate is immutable.

localDate.plusDays(1) does not modify the current localDate. It returns the new value which is current date plus one.

You have to reassign it:

localDate = localDate.plusDays(1);


来源:https://stackoverflow.com/questions/50543514/java-localdate-plusday-doesnt-work-properly

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!