2017-06-14 19 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() - >我...'應格式化爲代碼,而不是文本 –

回答

0

車guazzabuglio ;-)(多麼混亂)

你大概的意思

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

要獲得剩下的日子,直到下一個聖誕節還有一個更聰明的方法。它會得到下一個聖誕節的日期(不論年份)並計算其間的天數。

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

好的謝謝,但現在在行let diff = ...程序告訴我我「鍵入'日曆'沒有成員'currentCalendar'」 – Ludo7

+0

你正在混合Swift 2和3的語法。我會用一個聰明的解決方案來更新答案。 – vadian

+0

好的非常感謝! – Ludo7

相關問題