From 02f8fca516b1f48ace7ec2ca7da5cc472373def1 Mon Sep 17 00:00:00 2001 From: Mikolaj Luzak Date: Tue, 4 Jun 2024 10:45:01 +0200 Subject: [PATCH] More #302: fix bug where study duration by end date was calculated incorrectly --- .../redlink/more/studymanager/service/StudyService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/studymanager/src/main/java/io/redlink/more/studymanager/service/StudyService.java b/studymanager/src/main/java/io/redlink/more/studymanager/service/StudyService.java index e4babccd..68364ee5 100644 --- a/studymanager/src/main/java/io/redlink/more/studymanager/service/StudyService.java +++ b/studymanager/src/main/java/io/redlink/more/studymanager/service/StudyService.java @@ -23,6 +23,8 @@ import io.redlink.more.studymanager.repository.StudyGroupRepository; import io.redlink.more.studymanager.repository.StudyRepository; import io.redlink.more.studymanager.repository.UserRepository; + +import java.time.temporal.ChronoUnit; import java.util.EnumSet; import java.util.List; import java.util.Map; @@ -205,11 +207,11 @@ public Optional getStudyDuration(Long studyId) { .flatMap(study -> Optional.ofNullable(study.getDuration()) .or(() -> Optional.of(new Duration() - .setValue( - java.time.Period.between( + .setValue(Long.valueOf( + ChronoUnit.DAYS.between( Objects.requireNonNullElse(study.getStartDate(), study.getPlannedStartDate()), Objects.requireNonNullElse(study.getEndDate(), study.getPlannedEndDate()) - ).getDays() + 1) + ) + 1).intValue()) .setUnit(Duration.Unit.DAY) )) );