본문 바로가기
Language/JAVA

[JAVA] 시작 날짜 , 종료 날짜 비교 후 유효성 체크 isAfter()

by 아이엠제니 2024. 4. 15.

 


 

 

 

1. startDate 20240415 / endDate 20240417

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {

        String startDate = "20240415";
        String endDate = "20240417";

        boolean result = isValidDateRange(startDate, endDate);

        if (result) {
            System.out.println(result + " : 정확한 날짜입니다.");
        } else {
            System.out.println(result + " : 시작 날짜를 확인해주세요.");
        }
    }

    public static boolean isValidDateRange(String startDateStr, String endDateStr) {
        // 날짜 포맷 지정
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");

        // 시작 날짜와 종료 날짜를 LocalDate 객체로 변환
        LocalDate startDate = LocalDate.parse(startDateStr, formatter);
        LocalDate endDate = LocalDate.parse(endDateStr, formatter);

        // 유효성 검사
        return !startDate.isAfter(endDate);
    }
}

 

 

2. startDate 20240417 / endDate 20240415

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {

        String startDate = "20240417";
        String endDate = "20240415";

        boolean result = isValidDateRange(startDate, endDate);

        if (result) {
            System.out.println(result + " : 정확한 날짜입니다.");
        } else {
            System.out.println(result + " : 시작 날짜를 확인해주세요.");
        }
    }

    public static boolean isValidDateRange(String startDateStr, String endDateStr) {
        // 날짜 포맷 지정
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");

        // 시작 날짜와 종료 날짜를 LocalDate 객체로 변환
        LocalDate startDate = LocalDate.parse(startDateStr, formatter);
        LocalDate endDate = LocalDate.parse(endDateStr, formatter);

        // 유효성 검사
        return !startDate.isAfter(endDate);
    }
}

 

 

 


3. 정리

1) DateTimeFomatter

  • 날짜와 시간을 형식화하거나 파싱하는 데 사용되는 클래스
  • Java 8부터 제공
  • `java.time.format` 패키지에 포함되어 있음
  • 문자열을 날짜나 시간으로 변환하거나, 날짜나 시간을 원하는 형식으로 출력할 수 있음

 

(1) 파싱

  • 문자열을 날짜나 시간으로 변환: 문자열을 'LocalDate', 'LocalTime', 'LocalDateTime', 'ZonedDateTime' 등의 날짜/시간 타입으로 파싱함
  • 날짜나 시간을 문자열로 변환: 'LocalDate', 'LocalTime', 'LocalDateTime', 'ZonedDateTime'의 날짜/시간을 원하는 형식을 문자열로 형식화함

(2) 형식 지정자(pattern)

  • 다양한 형식을 지원함
  • 형식 지정자(pattern)를 사용하여 형식을 지정함
  • "yyyy-MM-dd"는 년-월-일, "HH:mm:ss"는 시간-분-초 형식을 나타냄

 

2) LocalDate.parse()

 

  •  주어진 문자열을 'LocalDate' 객체로 파싱하는데 사용됨
  • 첫 번째 매개변수는 형식화된 문자열을 나타냄
  • 두 번째 매개변수는 이 문자열의 형식을 정의함
  • 주어진 문자열을 'LocalDate' 객체로 변환함

 

3) isAfter()

  •  'LocalDate', 'LocalTime', 'LocalDateTime', 'ZonedDateTime'등의 날짜와 시간 객체에서 사용되는 메서드
  • 해당 객체가 다른 객체보다 이후인지 여부를 확인하는데 사용됨
  •  첫 번째 객체가 두 번째 객체보다 이후인지를 확인할 수 있음

 

 

 

참고
OpenAi. (2024) ChatGPT (version 3.5)[Large Language model]. https://chat.openai.com

 

 

 

300x250