[iOS] Date Calendar 오늘, 어제, 내일, 주말 비교하기 (Calendar 활용하기)
안녕하세요. 물먹고하자입니다. 오랜만에 프로젝트를 진행하다가 기존에 직접 계산했던 부분을 Date 함수에서 지원이 되는 점을 찾아 정리하고자 합니다.
화면 내 날짜 관련으로 비교하여 오늘, 어제 표기를 해야하는데 예전부터 사용해온 방식으로도 계산할 수 있지만, Apple Document 찾아보니 지원하고 있어서 이참에 변경하였습니다.
해당 날 비교 함수 iOS 8.0 이상
Calendar 문서
Sample Code
import UIKit /// 날짜 Date 변경하기 /// - Parameter stringDate: yyyyMMdd 형식 날짜 /// - Returns: Date func stringToDate(stringDate:String) -> Date { let formatter = DateFormatter() formatter.dateFormat = "yyyyMMdd" let date:Date = formatter.date(from: stringDate) ?? Date() return date } /// 날짜 비교하기 /// - Parameter date: Date /// - Returns: String Value func dayDifference(date:Date) -> String { let calendar = Calendar.current var returnString = "" if calendar.isDateInYesterday(date) { returnString = "Yesterday" } else if calendar.isDateInTomorrow(date){ returnString = "Tomorrow" } else if calendar.isDateInToday(date){ returnString = "Today" } else { returnString = "\(date)" } return returnString } let tempDate = stringToDate(stringDate: "20200724") //let tempDate = Date() // Today let result = dayDifference(date: tempDate) print(result) /// 해당 날 주말인지 확인 /// - Parameter date: Date /// - Returns: String Value func isWeekend(date:Date) -> String { let calendar = Calendar.current var returnString = "is Week X" if calendar.isDateInWeekend(date) { returnString = "is Week O" } return returnString } let weekDate = stringToDate(stringDate: "20200725") let isWeek = isWeekend(date: weekDate) print(isWeek)
마무리
개인적으로 만든 iOS 7.0때 부터 사용하던 날짜 비교하던 함수를 버리고, iOS에서 제공되는 함수로 이번에 변경해 보았습니다. iOS 8.0 이상 지원인게 충격적인게 그동안 이미 만들어놔서 안봤던게 아쉽내요. 미리미리 지원되는 함수를 많이 찾아서 변경해 봐야겠습니다.
즐거운 코딩 되세요~
댓글
댓글 쓰기