LocalDate 기본
Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨 — 59개 중 54번째.
Java의 LocalDate는 시간이나 시간대를 포함하지 않는 날짜를 나타냅니다. 생일, 휴일, 일정과 같은 날짜를 다루는 데 사용됩니다.
오늘 날짜 생성:
LocalDate today = LocalDate.now();특정 날짜 생성:
LocalDate date = LocalDate.of(2024, 3, 15);위 코드를 실행한 후, date에는 2024-03-15가 포함되어 있습니다.
날짜의 다른 부분 가져오기:
LocalDate date = LocalDate.of(2024, 3, 15);
int year = date.getYear(); // 2024
int month = date.getMonthValue(); // 3
int day = date.getDayOfMonth(); // 15문자열에서 날짜를 파싱합니다:
LocalDate date = LocalDate.parse("2024-03-15"); // 형식: "yyyy-MM-dd"중요: 문자열 형식이 잘못된 경우, parse()는 DateTimeParseException을 던집니다. 이를 처리하기 위해 try-catch를 사용하세요:
try {
LocalDate date = LocalDate.parse("invalid-date");
} catch (DateTimeParseException e) {
System.out.println("Invalid date format");
}일을 추가하거나 빼기:
LocalDate date = LocalDate.of(2024, 3, 15);
LocalDate future = date.plusDays(10); // 2024-03-25
LocalDate past = date.minusDays(5); // 2024-03-10위 코드를 실행한 후:
future: 2024-03-25past: 2024-03-10
챌린지
쉬움processDate라는 이름의 메서드를 생성하세요. 이 메서드는 세 개의 인수를 받습니다:
- 형식 "yyyy-MM-dd"인 String (
dateStr) - 더하거나 뺄 정수 (
days) - "add" 또는 "subtract"인 String (
operation)
메서드는 다음을 수행해야 합니다:
- 입력 날짜 문자열을 파싱하세요
- 지정된 일 수를 더하거나 빼세요
- 결과에 대한 형식화된 정보를 반환하세요
반환 메시지는 다음과 같아야 합니다:
- 잘못된 날짜 형식인 경우:
"Invalid date format"을 반환하세요 - 잘못된 작업인 경우:
"Invalid operation"을 반환하세요 - 성공한 경우:
"Original: [date], New: [new_date], Day of week: [day_name]"을 반환하세요
치트 시트
LocalDate는 Java에서 시간이나 시간대를 포함하지 않는 날짜를 나타냅니다.
오늘 날짜 생성:
LocalDate today = LocalDate.now();특정 날짜 생성:
LocalDate date = LocalDate.of(2024, 3, 15);날짜의 다양한 부분 가져오기:
LocalDate date = LocalDate.of(2024, 3, 15);
int year = date.getYear(); // 2024
int month = date.getMonthValue(); // 3
int day = date.getDayOfMonth(); // 15
String dayOfWeek = date.getDayOfWeek().toString(); // "FRIDAY"문자열에서 날짜 파싱:
LocalDate date = LocalDate.parse("2024-03-15"); // 형식: "yyyy-MM-dd"일수 추가 또는 빼기:
LocalDate date = LocalDate.of(2024, 3, 15);
LocalDate future = date.plusDays(10); // 2024-03-25
LocalDate past = date.minusDays(5); // 2024-03-10직접 해보기
import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String processDate(String dateStr, int days, String operation) {
// 여기에 코드를 작성하세요
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateStr = scanner.nextLine();
int days = Integer.parseInt(scanner.nextLine());
String operation = scanner.nextLine();
System.out.println(processDate(dateStr, days, operation));
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.