인프런 커뮤니티 질문&답변

생각하는자님의 프로필 이미지
생각하는자

작성한 질문수

김영한의 실전 자바 - 중급 1편

문제와 풀이1

Time클래스 Period의 값을 LocalDate에 넣기

해결된 질문

작성

·

186

·

수정됨

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요. 궁금중이 생겨서 질문을 남깁니다.

Period클래스를 이용해서 지정 범위 의 시간을 구한 것을,

다시 LocaDate로 값을 바꾸고 싶을때,

아래의 코드처럼 코딩을 하였는데요,

LocalDate startDate = LocalDate.of(2024, 1, 1);

LocalDate endDate = LocalDate.of(2024, 11, 21);

Period period = period.between(startDate, endDate);

LocalDate localDate = LocalDate.of(period.getYears(),period.getMonths(),period.getDays());

이런 코드 스타일이라고 할까요? 이렇게 코드 짜는게 맞나요?

(TestBetween클래스 코드를 좀 수정 한 것입니다.)

답변 부탁 드립니다.

(추가) - 코드 변경 + 내용 수정

글을 다시 보니 글이 너무 이상하네요. 좀 죄송합니다.

저가 너무 서포터즈님 들의 도움만 바라는 것인가? 라는 생각도 좀 드는데.. 이것도 지적해주시면 감사하겠습니다.

 

답변 1

1

안녕하세요. 생각하는자님, 공식 서포터즈 y2gcdoer입니다.

어떤 상황을 생각하신 것인지는 모르겠습니다!

다만 PeriodLocalDate 로 바꾸신다는 말씀은 선을 점 하나로 나타내보겠다는 말씀과 같다고 생각합니다

아마 짜주신 예제 코드를 직접 돌려보시면 답을 찾으실 수 있으실거라 생각합니다!

여담으로 추가 질문에 대해 말씀드리자면, 수강생 분들이 하신 질문에 따라 대답이 달라질 것 같습니다. 정말로 서포터즈들이나 영한님의 지식이 필요한 답변이 있는 반면, 스스로 코드를 실행해봤을 때 더 쉽고 빠르게 답을 얻을 수 있는 질문들이 있습니다. 후자의 질문 유형은 스스로 코드를 짜보는 재미(?)도 느끼면서, 영한님께서 학습의 3단계에서 늘 말씀하시는 것처럼 체화할 수 있기 때문입니다.

 

 

감사합니다.

선을 점으로 바꾼다… 정말 말도 안되는 일을 하려고 했었네요. y2gcdoer님 좋은 답변 감사합니다.

y2gcdoer님 period를 localDate에 넣어서 하는것에 관련된 거여서 여기에 글을 남깁니다.

위에 글은 저가 TestBetween에 있는 System.out.println("남은 기간: " + period.getYears() +"년 " + period.getMonths() + "개월 " + period.getDays() + "일"); 이 코드가 좀 귀찮아져서 "포메팅 패턴 으로 넣어보자" 하다가 생각한 방법입니다.

그래서 코드가

image.png

이렇게 되는데 이렇게 "포메팅" 을 해도 되는지요?

아니면 System.out.println("남은 기간: " + period.getYears() +"년 " + period.getMonths() + "개월 " + period.getDays() + "일"); 이렇게 해야 하는것인가요?

답변 부탁 드립니다.

그런식으로 포맷팅을 하셔도 됩니다!
추가로 포맷팅할 때는 기본적으로 자바에서 각 날짜 및 시간 단위에 대한 기호 관례가 있습니다!
다음 링크를 참고해보시면 문자열로 포맷팅할 때 필요한 pattern letter에 대해 더 자세히 알 수 있으실 거라 생각합니다 🙂

https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/time/format/DateTimeFormatter.html

그렇군요. y2gcoder님 알켜 주셔서 감사합니다.

생각하는자님의 프로필 이미지
생각하는자

작성한 질문수

질문하기