iOS Swift. 时间自日期以来

6

我希望能够计算出距离给定日期的月数和天数。

d是一个表示日期的字符串。

    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "MM-dd-yy"
    let date = dateFormatter.dateFromString(d)
    startTime = date?.timeIntervalSinceReferenceDate

我希望能够得到距离某个日期的月数、天数和分钟数,但在解决这个错误之前我需要先完成其他部分。编译器在最后一行发出了投诉。

谢谢。


startTime 是否声明为可选项? - Brian Nickel
1个回答

9
您需要使用NSCalendar来计算以月和天为单位的时间差。例如:
let calendar = NSCalendar.autoupdatingCurrentCalendar()
calendar.timeZone = NSTimeZone.systemTimeZone()
let dateFormatter = NSDateFormatter()
dateFormatter.timeZone = calendar.timeZone
dateFormatter.dateFormat = "yyyy-MM-dd"
if let startDate = dateFormatter.dateFromString("2014-9-15") {
    let components = calendar.components([ .Month, .Day ],
        fromDate: startDate, toDate: NSDate(), options: [])
    let months = components.month
    let days = components.day
    print("It's been \(months) months and \(days) days.")
}

输出结果(2014年1月5日):

It's been 3 months and 21 days.

我相信Swift的更新改变了很多东西,主要是或运算符不再与枚举一起使用。非常好的解决方案!谢谢。 - Unome

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接