2017-06-14 1 views
0

"let oggi = ..."プログラムは "期待された表現"を教えてくれます。どうすれば修正できますか?行に "let oggi = ..."プログラムは私にそれを修正することができます "期待された表現"を教えて?

func daysToXmas() -> Int{ 
      let oggi = Calendar.current.dateComponents(Set<Calendar.Component>, from: Date, .month, .year, from:self);) 

      var nataleComponents = DateComponents() 
      nataleComponents.year = 2015 
      nataleComponents.month = 12 
      nataleComponents.day = 25 
      let natale = Calendar.current.date(from: nataleComponents)! 


      let components: NSCalendar.Unit = .NSDayCalendarUnit 
      let diff = Calendar.currentCalendar().components(components, fromDate: oggi!, toDate: natale, options: nil) 
      return diff.day 

     } 

    } 
+0

コードを正しくフォーマットしてください。 –

+0

どうすればいいですか?申し訳ありませんが、私はサイト上で新しいです – Ludo7

+0

'func daysToXmas() - > I ...'は、テキストとしてではなくコードとして書式化する必要があります –

答えて

0

チェはおそらく、よりスマートな方法がある次のクリスマスまでの残り日数を取得するには

let oggi = Calendar.current.dateComponents([.month, .year], from: Date()) 

を意味する(何をゴチャゴチャ);-)

をguazzabuglio。次のXmasの日付を取得し(年に関係なく)、その間の日数を計算します。

func daysToXmas() -> Int { 
    let nataleComponents = DateComponents(month:12, day:25) 
    let prossimoNatale = Calendar.current.nextDate(after: Date(), matching: nataleComponents, matchingPolicy: .strict)! 
    return Calendar.current.dateComponents([.day], from: Date(), to: prossimoNatale).day! 
} 
+0

okありがとうございます。私は "タイプ 'カレンダー'にはメンバー 'currentCalendar'がありません" – Ludo7

+0

あなたはスウィフト2と3の構文を混ぜています。私はスマートなソリューションで答えを更新します。 – vadian

+0

大変ありがとう! – Ludo7

関連する問題