gpt4 book ai didi

swift - 两个 Date 对象之间的所有日期 (Swift)

转载 作者:IT王子 更新时间:2023-10-29 05:11:38 25 4
gpt4 key购买 nike

我正在使用 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: [])

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

编辑 2019

与此同时,类的命名发生了变化——NSDate 现在只是DateNSDateComponents 现在称为 DateComponentsNSCalendar.currentCalendar() 现在只是 Calendar.current

最佳答案

只要在日期上加上一天的单位,直到它到达当前日期(Swift 2 代码):

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 - 两个 Date 对象之间的所有日期 (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32536612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com