https://school.programmers.co.kr/learn/courses/30/lessons/12901
import java.time.DayOfWeek;
import java.time.LocalDate;
class Solution {
public String solution(int a, int b) {
int year = 2016;
int month = a;
int day = b;
LocalDate date = LocalDate.of(year, month, day);
DayOfWeek dayOfWeek = date.getDayOfWeek();
String answer = dayOfWeek.toString();
answer = answer.substring(0, 2);
return answer;
}
}
LocalDate
1. 패키지
- LocalDate: java.time.LocalDate
2. 시간 정보 포함 여부
- LocalDate: 순수하게 날짜 정보(년, 월, 일)만을 저장하며, 시간 정보는 포함하지 않음.
3. 불변성
- LocalDate: 불변 객체로, 값을 변경할 수 없습니다. 날짜를 변경하려면 새로운 객체를 생성해야 합니다.
4. 가독성 및 편리성
- LocalDate: 훨씬 직관적이고 명확한 API를 제공합니다. 날짜 조작 및 계산이 쉬워졌으며, 메서드 이름도 직관적입니다.
LocalDate localDate = LocalDate.now();
localDate = localDate.plusDays(1); // 하루 더하기
5. 시간대(Timezone) 처리
- LocalDate: 시간대가 없는 순수한 날짜만 다루며, 시간대 관련 처리가 필요할 경우 ZonedDateTime, OffsetDateTime과 같은 클래스를 사용합니다.
6. 새로운 날짜 API의 기능적 확장성
- LocalDate: 날짜 비교, 차이 계산, 날짜 연산 등이 매우 편리하게 제공됩니다. 예를 들어, isBefore(), isAfter(), until() 같은 메서드를 통해 쉽게 날짜 간 비교 및 차이를 구할 수 있습니다.
LocalDate date1 = LocalDate.of(2024, 10, 23);
LocalDate date2 = LocalDate.of(2024, 11, 1);
boolean isAfter = date1.isAfter(date2);
7. 포맷팅 및 파싱
- LocalDate: DateTimeFormatter로 포맷팅 및 파싱을 간편하고 명확하게 수행할 수 있습니다.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = LocalDate.now().format(formatter);
'문제 풀이 > 프로그래머스 알고리즘' 카테고리의 다른 글
Arrays.sort() 메서드, 배열 정렬 (1) | 2024.11.09 |
---|---|
체육복 + ConcurrentModificationException (0) | 2024.11.04 |
가장 가까운 같은 글자 (0) | 2024.10.17 |
문자열 내 마음대로 정렬하기 // Arrays.sort(), Comparator<T> (1) | 2024.10.14 |
이상한 문자 만들기 // String.split(), Character.toUpperCase() (1) | 2024.10.10 |