開始日と終了日だけを渡された状況で、開始日と終了日から間にある年月日を求める方法を紹介します。
翌日の求め方
指定された日付から翌日(次の日)を求めるにはCalendar#date(byAdding:value:to:)
を使います。
let today = Date() let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: today)!
開始日と終了日の間にある年月日を取得する
func dates(startDate: Date, endDate: Date) -> [Date] { var results = [Date]() var date = startDate while date <= endDate { results.append(date) date = Calendar.current.date(byAdding: .day, value: 1, to: date)! } return results }
使い方としてはこのような感じになります。date(string:)
では文字列からDateオブジェクトを生成していると考えてください。
let startDate = date(string: "2018-08-01") let endDate = date(string: "2018-08-12") dates(startDate: startDate, endDate: endDate) .forEach({ print($0) })