자바

[Java] LocalDate 날짜 더하기 / 빼기

닉네임생각즁 2024. 2. 6. 09:16

 

프로젝트를 하면서 LocalDate를 계산해줘야할 일이 생겼다

장 본 목록에 대해 구매날짜, 유통기한날짜를 넣어야하는데 채소나 고기같은 경우 유통기한이 정확히 적혀져있는게 아니라서 임의로 고기는 구매날짜 + 2일 / 채소는 구매날짜 + 7일로 유통기한날짜를 넣어주기로 했다

내가 장본목록을 저장하는 기능을 맡아서 이를 해야했는데

처음에는 LocalDate에서 '일'을 뽑아서 더해주고 만약 '월'이 넘어간다면 그걸 계산해주는 방식으로 하고 있었는데 28일인 달, 30일인 달, 31일인 달 등 나누다보니 머리가 살짝 아파왔다 쉬는 시간에 반친구한테 이러이러한걸 하고있다고 얘기하고있었는데 다른 반친구가 지나가면서 그거 자바가 알아서 해주는데? 라고 했다 그래서 바로 검색을 했더니 진짜 그런게 있는거다,,,,,,,,!!!! 

 

 

그렇게 알게 된 LocalDate 날짜 더하기

 plusDays()
- 이 메서드를 호출한 LocalDate 객체에 일(day)이 더해진 LocalDate 객체를 반환

 

 

아주아주 간편하고 놀라운 메서드👍👍

 

물론 빼는거도 간편하게 가능하다

 

 

그렇게 해서 완성을 할 수 있었다

categoryId가 2인건 채소, 3인건 고기다!! 

public PurchaseHistory save(PurchaseHistory purchaseHistory) {

        if(purchaseHistory.getCategoryId() == 2) {
            purchaseHistory.setExpirationDate(purchaseHistory.getPurchaseDate().plusDays(7));
        } else if(purchaseHistory.getCategoryId() == 3) {
            purchaseHistory.setExpirationDate(purchaseHistory.getPurchaseDate().plusDays(2));
        }

        return refridgeManagementRepository.save(purchaseHistory);
    }

 

쉽게 되니까 재밌다😎😎