2015-01-05 23 views
5

Tôi muốn số tháng và ngày kể từ ngày nhất định được cho bởi một chuỗi.IOS Swift. Thời gian kể từ ngày

d là một chuỗi của một ngày

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

tôi sẽ lý tưởng như những tháng, ngày, phút kể từ ngày nhưng tôi sẽ làm việc bán rằng một khi tôi có được thông qua lỗi này. Trình biên dịch đang phàn nàn về dòng cuối cùng.

Cảm ơn

+0

là 'startTime' khai báo là bắt buộc? –

+0

Lỗi là gì? – Fogmeister

Trả lời

7

Bạn cần phải sử dụng một NSCalendar để tính toán sự khác biệt trong các điều khoản của tháng và ngày. Ví dụ:

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.") 
} 

Output (trên 2014/01/05):

It's been 3 months and 21 days. 
+0

Tôi tin rằng bản cập nhật Swift đã thay đổi tất cả điều này. Chủ yếu là các nhà điều hành hoặc không còn hoạt động với các enums. Giải pháp tuyệt vời! cảm ơn – Unome

Các vấn đề liên quan