TIL59 - 날짜판별
Date 타입 객체를 가지고 며칠 차이가 나는지 구하는 방법입니다.
일반적인 Calender.current 를 통해서 day차이를 구할때 단점은, 우리의 생각은 17일 오후10시와 18일 오전1시는 하루가 차이나지만, 해당 방식은 0일차이가 난다고 결론합니다.
따라서 DateFormatter로 날짜형식을 바꾼뒤 날짜차이를 결정해야 합니다.
extension Date {
var differenceOfToday: String {
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "ko-kr")
dateFormatter.dateFormat = "yyyy-MM-dd"
let currentDateString = dateFormatter.string(from: self)
let todayDateString = dateFormatter.string(from: Date())
guard let currentDate = dateFormatter.date(from: currentDateString),
let todayDate = dateFormatter.date(from: todayDateString) else { return ""}
let differenceOfDay = Calendar.current.dateComponents([.day], from: todayDate, to: currentDate).day ?? 0
if differenceOfDay == 0 {
return "오늘"
} else if differenceOfDay > 0 {
return "\(abs(differenceOfDay))일후"
} else {
return "\(abs(differenceOfDay))일전"
}
}
}
댓글
