코딩테스트/프로그래머스

[JAVA] 날짜 비교하기

Initsave 2024. 4. 7. 09:30

 

 

 오.... +13 ?? 기준은 모르겠지만 기분은 좋은 스타트!@

 

 

 

 

 

 

 

import java.util.*;

class Solution {
    public int solution(int[] date1, int[] date2) {
        
        Date d1 = new Date(date1[0],date1[1],date1[2]);
        Date d2 = new Date(date2[0],date2[1],date2[2]);
        
        return d1.compareTo(d2) < 0 ? 1 : 0;
    }
}

 

구현한 Date 타입으로 했지만 아무래도 LocalDate 타입이 성능적으로 더 뛰어났다!!

 

import java.time.LocalDate;

class Solution {

    public int solution(int[] date1, int[] date2) {

        LocalDate dateA = LocalDate.of(date1[0], date1[1], date1[2]);
        LocalDate dateB = LocalDate.of(date2[0], date2[1], date2[2]);

        if (dateA.isBefore(dateB)) {
            return 1;
        } else {
            return 0;
        }
    }
}

 

한줄 풀이..

import java.time.LocalDate;

class Solution {
    public int solution(int[] date1, int[] date2) {
        return LocalDate.of(date1[0], date1[1], date1[2])
                .isBefore(LocalDate.of(date2[0], date2[1], date2[2])) ? 1 : 0;
    }
}

 

다음에 Date를 사용할때는 LocalDate 메서드 확인하고 하도록...습관을!!

 

https://download.java.net/java/GA/jdk14/docs/api/java.base/java/time/LocalDate.html

 

LocalDate (Java SE 14 & JDK 14)

All Implemented Interfaces: Serializable, Comparable , ChronoLocalDate, Temporal, TemporalAccessor, TemporalAdjuster public final class LocalDate extends Object implements Temporal, TemporalAdjuster, ChronoLocalDate, Serializable A date without a time-zone

download.java.net