Swift学习走进swift

扩展了一些NSDate,便于格式化日期。

2016-03-28  本文已影响129人  brzhang
//
//  NSDate.swift

import Foundation

public extension NSDate {
    class func currentTimeStamptSting() -> String {
        return "\(NSDate().timeIntervalSince1970)"
    }

    class func currentTimeStamptInt() -> Int {
        return Int(NSDate().timeIntervalSince1970)
    }

    /**
     拿到两个时间之间的间隔

     - parameter start: 开始时间戳
     - parameter end:   结束时间戳

     - returns:
     如果年月都相同返回 xx月xx日-xx日</br>
     如果只有年相同 返回 xx月xx日-xx月xx</br>
     否则,返回xxxx年xx月xx日-xxxx年xx月xx日
     */
    static func getFormatDateInterval(start: NSTimeInterval, end: NSTimeInterval) -> String {
        let dateNow = NSDate.init()

        let dateFormat = NSDateFormatter.init()
        dateFormat.dateFormat = "yyyy-MM-dd"

        let dateFormatOutPut = NSDateFormatter.init()
        dateFormatOutPut.dateFormat = "yyyy年M月d日"

        let dateStart = NSDate.init(timeIntervalSince1970: start)

        let dateEnd = NSDate.init(timeIntervalSince1970: end)

        let dateNowString: String = dateFormat.stringFromDate(dateNow)
        let dateNowSeg = dateNowString.componentsSeparatedByString("-")
        let dateStartString: String = dateFormat.stringFromDate(dateStart)
        let dateStartSeg = dateStartString.componentsSeparatedByString("-")
        let dateEndString: String = dateFormat.stringFromDate(dateEnd)
        let dateEndSeg = dateEndString.componentsSeparatedByString("-")

        // 如果两个日期相同,就显示一个
        if dateStartString == dateEndString {
            if dateStartSeg[0] == dateNowSeg[0] {
                return dateFormatOutPut.stringFromDate(dateStart).componentsSeparatedByString("年")[1]
            } else {
                return dateFormatOutPut.stringFromDate(dateStart)
            }
        }

        // 如果年份和当前年份相同
        if dateStartSeg[0] == dateEndSeg[0] && dateStartSeg[0] == dateNowSeg[0] && dateNowSeg[0] == dateEndSeg[0] {
            // 如果两个月份都相同
            if dateStartSeg[1] == dateEndSeg[1] {
                return dateFormatOutPut.stringFromDate(dateStart).componentsSeparatedByString("年")[1] + "-" + dateFormatOutPut.stringFromDate(dateEnd).componentsSeparatedByString("月")[1]
                // return
            } else {
                return dateFormatOutPut.stringFromDate(dateStart).componentsSeparatedByString("年")[1] + "-" + dateFormatOutPut.stringFromDate(dateEnd).componentsSeparatedByString("年")[1]
            }
        } else {
            return dateFormatOutPut.stringFromDate(dateStart) + "-" + dateFormatOutPut.stringFromDate(dateEnd)
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读