我正在用NSDateComponents()创建一个日期.

let startDate = NSDateComponents()
startDate.year = 2015
startDate.month = 9
startDate.day = 1
let calendar = NSCalendar.currentCalendar()
let startDateNSDate = calendar.dateFromComponents(startDate)!

... 现在我想打印从startDate年到今天NSDate()年的所有日期.我已经试过玩NSCalendarUnit了,但它只输出整个差异,而不是两次约会之间的单个日期.

let unit: NSCalendarUnit = [.Year, .Month, .Day, .Hour, .Minute, .Second]
let diff = NSCalendar.currentCalendar().components(unit, fromDate: startDateNSDate, toDate: NSDate(), options: [])

如何打印两个对象之间的所有日期?

Edit 2019

与此同时,课程的命名也发生了变化——NSDate现在只是Date.NSDateComponents现在被称为DateComponents.NSCalendar.currentCalendar()现在只有Calendar.current.

推荐答案

只需在日期上增加一天的单位,直到达到

var date = startDateNSDate // first date
let endDate = NSDate() // last date

// Formatter for printing the date, adjust it according to your needs:
let fmt = NSDateFormatter()
fmt.dateFormat = "dd/MM/yyyy"

// While date <= endDate ...
while date.compare(endDate) != .OrderedDescending {
    print(fmt.stringFromDate(date))
    // Advance by one day:
    date = calendar.dateByAddingUnit(.Day, value: 1, toDate: date, options: [])!
}

更新为Swift 3:

var date = startDate // first date
let endDate = Date() // last date

// Formatter for printing the date, adjust it according to your needs:
let fmt = DateFormatter()
fmt.dateFormat = "dd/MM/yyyy"

while date <= endDate {
    print(fmt.string(from: date))
    date = Calendar.current.date(byAdding: .day, value: 1, to: date)!
}

Swift相关问答推荐

如何使用swift宏生成一个带有关联值的枚举?

使用SWIFT宏从另一个枚举添加 case

SwiftData:线程1:&Quot;NSFetchRequest找不到实体名称';提醒&q;的NSEntityDescription

有没有一种方法可以迭代可编码的代码(例如,JSON解析中的每一项)?

如何在DATE()中进行比较

Swift图表';chartXVisibleDomain挂起或崩溃

Swift数据关系

如何在设备(或常量)地址空间中创建缓冲区?

如何在visionOS中将模型锚定在用户头部上方?

如何在 Combine 合并运算符的输出上使用 eraseToAnyPublisher

如何在 SwiftUI 中将图像传递到 2 个视图

持久化字符串列表属性 RealmSwift

自定义选取器的出现导致其他视图重新排列

调用从 SwiftUI 视图传递到 PageViewController.Coordinator 的函数

如何仅将 SwiftUI 不透明度应用于父视图?

Vapor, fluent 使用 PostgreSQL 保存/创建复杂模型

在 Swift for iOS 中沿圆形路径绘制文本

如何将 Int 拆分为其各个数字?

枚举大小写的原始值必须是文字

通过单击表格视图中的单元格打开新的视图控制器 - Swift iOS