2016-09-05 19 views
0

私の古いコードでは、私が「daysFrom」と呼ばれる日付の拡張子を持っていたと私はスウィフト3に移行するように見えることはできません:私はスウィフトthisを見つけスウィフト3日拡張子:取得「daysFrom」日付

func daysFrom(_ date:Date) -> Int{ 
    //Swift 2: 
    //return Calendar.current.date(.firstWeekday, from: date, to: self, options: []).day 

    //My Swift 3 attempt, doesn't work: 
    return Calendar.current.date([.firstWeekday], from: date, to: self).day 
} 

...スウィフト2でNSCalendarUnitもスウィフト3でCalendar.ComponentどちらもfirstWeekday ...

のコンポーネントが含まれているので、どのように私はREPLACん。と言うのスレッドこの拡張? 、2つの日付の間の日数を取得dateComponentsを使用するには

+0

あなたの "スウィフト2" バージョンが有効スウィフト2コードではありません、とfirstWeekdayは、カレンダーコンポーネントではありません。 –

+1

[2つのNSDatesの間の素早い日](http://stackoverflow.com/questions/24723431/swift-days-between-two-nsdates)には、Swift 3までのすべてのSwiftバージョンのコードがあります:http://stackoverflow.com/ a/38549470/1187415。 –

+1

元の質問を更新しましたo Xcode 8 beta 6 http://stackoverflow.com/a/27184261/2303865 –

答えて

3

extension Date { 
    func days(from date: Date) -> Int { 
     return Calendar.current.dateComponents([.day], from: date, to: self).day! 
    } 
} 

そして

let days = endDate.days(from: startDate) 
関連する問題