Menu
CoddyTech

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
String dayOfWeek = date.getDayOfWeek().toString();  // "FRIDAY"

문자열에서 날짜를 파싱합니다:

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-25
  • past: 2024-03-10
challenge icon

챌린지

쉬움

processDate라는 이름의 메서드를 만들고 다음 세 가지 인수를 받도록 하세요:

  1. "yyyy-MM-dd" 형식의 문자열(dateStr)
  2. 더하거나 뺄 정수(days)
  3. "add" 또는 "subtract" 중 하나인 문자열(operation)

메서드는 다음을 수행해야 합니다:

  1. 입력 날짜 문자열을 파싱합니다
  2. 지정된 일수를 더하거나 뺍니다
  3. 결과에 대한 형식화된 정보를 반환합니다

반환 메시지는 다음과 같아야 합니다:

  • 날짜 형식이 잘못된 경우: "Invalid date format"을 반환합니다
  • 연산이 잘못된 경우: "Invalid operation"을 반환합니다
  • 성공한 경우: "Original: [date], New: [new_date], Day of week: [day_name]"을 반환합니다. 여기서 [day_name]은 새 날짜의 요일을 대문자로 나타낸 것입니다(예: WEDNESDAY).

직접 해보기

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));
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Java 컴파일러