Programer/iOS

[Swift] 날짜 변환 함수 (Date -> String)

아즈샤 2016. 3. 25. 16:03
반응형

아래 소스는 데이트 값을 받아서 현재 시점보다 얼마나 떨어졌는지 한글로 알려주는 함수 입니다.

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 "방금"

    }

}


반응형