ios - Swift - 获取从今天开始的最后 7 天数组

标签 ios arrays swift days

如何获取该月的前 7 天 我知道如果今天是 18 日如何获取,但如果今天是 11 月 3 日怎么办?如何在 Int 中获取上个月(10 月)的最后 4 天?

最佳答案

使用 NSCalendarNSDateComponents:

let cal = NSCalendar.currentCalendar()
// start with today
var date = cal.startOfDayForDate(NSDate())

var days = [Int]()

for i in 1 ... 7 {
    // get day component:
    let day = cal.component(.DayCalendarUnit, fromDate: date)
    days.append(day)

    // move back in time by one day:
    date = cal.dateByAddingUnit(.DayCalendarUnit, value: -1, toDate: date, options: nil)!
}

println(days)

Swift 2.2 (Xcode 7.3.1) 更新:

let cal = NSCalendar.currentCalendar()
var date = cal.startOfDayForDate(NSDate())
var days = [Int]()
for i in 1 ... 7 {
    let day = cal.component(.Day, fromDate: date)
    days.append(day)
    date = cal.dateByAddingUnit(.Day, value: -1, toDate: date, options: [])!
}
print(days)

Swift 3(Xcode 8 beta 2)更新:

let cal = Calendar.current
var date = cal.startOfDay(for: Date())
var days = [Int]()
for i in 1 ... 7 {
    let day = cal.component(.day, from: date)
    days.append(day)
    date = cal.date(byAdding: .day, value: -1, to: date)!
}
print(days)

关于ios - Swift - 获取从今天开始的最后 7 天数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26996330/

相关文章:

ios - 为什么这不能正确地画线?

ios - 在应用程序处于后台时更改状态栏中的文本

ios - iOS视觉:VNRecognizedText boundingBox(for :)方法返回任意范围的相同边界框

JavaScript 对象数组 - 根据嵌套对象从数组中删除重复对象

c++ - 将 C int 数组重置为零 : the fastest way?

python - 升级 numpy 数组并均匀分布值

ios - 类属性未在 Swift 2 中的闭包内分配

ios - 如何使用结构化模型层在 Siesta 中实现持久缓存

ios - Realm 0.92,在索引处快速获取对象

ios - finishWriting已被弃用:在iOS 6.0中首次被弃用