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
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 요일구하기 (한글) (0) | 2024.11.08 |
---|---|
[JAVA] LocalDate 차이 구하기 (0) | 2024.11.05 |
[JAVA] List 선언만 하기, 선언하고 초기화 하기 차이 (0) | 2024.10.27 |
[JAVA] 4자리 문자열을 HH:mm형식으로 변환 (0) | 2024.10.26 |
[JAVA] 배열생성 - 길이지정 (0) | 2024.10.21 |