Calendarクラスを使います
swift
1
2// swift3.0
3
4/**
5 startから本日までの日付を配列で返す
6*/
7func getDaysArrayToToday(start:String,max:Int) -> [String] {
8
9 var result:[String] = []
10 let formatter = DateFormatter()
11 formatter.locale = NSLocale(localeIdentifier: "ja_JP") as Locale
12 formatter.dateFormat = "yyyy-MM-dd"
13
14 // 今日
15 let todayStr = formatter.string(from: Date())
16 let startDate = formatter.date(from: start)!
17
18 var components = DateComponents()
19 let calendar = Calendar(identifier: Calendar.Identifier.gregorian)
20
21 for i in 0 ..< max {
22
23 components.setValue(i,for: Calendar.Component.day)
24 let wk = calendar.date(byAdding: components, to: startDate)!
25 let wkStr = formatter.string(from: wk)
26 if wkStr > todayStr {
27 break
28 } else {
29 result.append(wkStr)
30 }
31 }
32 return result
33}
34
35let startDate = "2016-12-20"
36print(getDaysArrayToToday(start: startDate, max: 1200))
37
38// 12/24に実行
39// ["2016-12-20", "2016-12-21", "2016-12-22", "2016-12-23", "2016-12-24"]
40
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/24 05:18
2016/12/24 10:36