JAVA

[JAVA] Period 로 +1일 더하기

오선지♬ 2024. 11. 4. 20:47
728x90
반응형

Period여전히 차이를 계산하는 데 사용할 수 있지만 ,

Period'의 방법은 해당 월 내의getDays() 일수 차이만 제공하며 ,

날짜가 여러 달 또는 여러 해에 걸쳐 있는 경우 오해의 소지가 있습니다.

계속 사용하려면  일수 기준으로 전체 차이를 계산하고 다음과 같이 모든 것을 일수로 변환해야 합니다.

// 행사기간 계산
String usagSdt = crInfo.getUsagSdt();
String usagEdt = crInfo.getUsagEdt();

// 문자열을 LocalDate로 변환
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate startDate = LocalDate.parse(usagSdt, formatter);
LocalDate endDate = LocalDate.parse(usagEdt, formatter);

// 날짜 차이 계산 + 1일 추가
Period period = Period.between(startDate, endDate);
int daysBetween = period.getYears() * 365 + period.getMonths() * 30 + period.getDays() + 1;

System.out.println("행사기간: " + daysBetween + "일");

이 접근 방식은 대략적인 값(1년은 365일, 1개월은 30일)을 사용하는데,

윤년이나 다양한 월 길이가 있는 정확한 값이 필요한 경우 약간 다를 수 있습니다.

정확한 일 수를 계산하려면 ChronoUnit.DAYS.between일반적으로 더 간단하고 정확한 선택입니다.

728x90
반응형