2017-05-16 29 views
0

我正在使用包調用DateToolsSwift。現在,無論何時我想爲Date對象添加一天,我都會這樣做:如何使用DateToolsSwift添加日期到日期?

let date = Date().add(TimeChunk(seconds: 0, minutes: 0, hours: 0, days: 3, weeks: 0, months: 0, years: 0)) 

此代碼太長,感覺不對。所以我的問題是,這是在DateToolsSwift中做到這一點的方法嗎?或者我做錯了?

+4

這有什麼錯內置API? 'let date = Calendar.current.date(byAdding:.day,value:3,to:Date())' – vadian

+0

@vadian沒有錯,但它更容易使用DateTools。 – Norak

回答

2

的DateToolsSwift包定義在Integer+DateTools.swift擴展方法,其允許簡單創建 TimeChunk S,例如3.days2.weeks。因此,你可以做

let date = Date().add(3.days) 

,或者因爲DateToolsSwift還定義了一個自定義的+操作,

let date = Date() + 3.days 
+0

非常感謝你的先生。 – Norak

3

*不使用DateToolsSwift。舉例來說,如果你要到3天添加到1970年1月1日

let aDate = Date(timeIntervalSince1970: 0) 
var dateComponent = DateComponents() 
dateComponent.day = 3 
let next3Days = Calendar.current.date(byAdding: dateComponent, to: aDate) 

同樣,你可以設置aDate = Date()如果你想加入天到今天。

EDIT

可替代地,從@CodeDifferent

let next3Days = Calendar.current.date(byAdding: .day, value: 3, to: aDate)! 
+1

如果您只添加1個時間單位,就像在這種情況下一樣,還有一個更方便的函數:'let next3Days = Calendar.current.date(byAdding:.day,value:3,to:aDate)!' –

+0

Thanks @CodeDifferent ,更新了我的回答 – Lawliet