아래 소스는 데이트 값을 받아서 현재 시점보다 얼마나 떨어졌는지 한글로 알려주는 함수 입니다.
n년 전, n달 전, n주 전, 저번주.....방금 전 형식으로 바꿔줍니다.
func timeAgoSinceDate(date:NSDate, numericDates:Bool) -> String {
let calendar = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian)!
let unitFlags : NSCalendarUnit = [.Minute, .Hour, .Day, .WeekOfYear, .Month, .Year, .Second]
let now = NSDate()
let earliest = now.earlierDate(date)
let latest = (earliest == now) ? date : now
let components:NSDateComponents = calendar.components(unitFlags, fromDate: earliest, toDate: latest, options: [])
if (components.year >= 2) {
return "\(components.year)년 전"
} else if (components.year >= 1){
if (numericDates){
return "1년 전"
} else {
return "작년"
}
} else if (components.month >= 2) {
return "\(components.month)달 전"
} else if (components.month >= 1){
if (numericDates){
return "1달 전"
} else {
return "저번 달"
}
} else if (components.weekOfYear >= 2) {
return "\(components.weekOfYear)주 전"
} else if (components.weekOfYear >= 1){
if (numericDates){
return "1주 전"
} else {
return "저번 주"
}
} else if (components.day >= 2) {
return "\(components.day)일 전"
} else if (components.day >= 1){
if (numericDates){
return "1일 전"
} else {
return "어제"
}
} else if (components.hour >= 2) {
return "\(components.hour)시간 전"
} else if (components.hour >= 1){
if (numericDates){
return "1시간 전"
} else {
return "1시간 전"
}
} else if (components.minute >= 2) {
return "\(components.minute)분 전"
} else if (components.minute >= 1){
if (numericDates){
return "1분 전"
} else {
return "1분 전"
}
} else {
return "방금"
}
}
'Programer > iOS' 카테고리의 다른 글
[iOS] Swift 3 변경되는 점 정리 블로그 (0) | 2016.06.15 |
---|---|
[Swift] tableView Cell 선택시 view에 맞춰 dimmed 효과 주기 (0) | 2016.05.26 |
[iOS] iOS 개발자 오픈채팅 방 링크 (3) | 2016.01.13 |
[Swift] TextView 안에 있는 Hashtag 텍스트를 Link 하기 (0) | 2016.01.08 |
[iOS] 앱 배포시 필요한 인증서와 키, 주의해야 할 점 (0) | 2016.01.04 |