如何从当前date迅速获得下一个10天

我有dateformatstring这样的“2015-03-09”。我如何得到下一个10天date从当前date?任何帮助将不胜感激。提前感谢

以下是如何使用内置的date修改方法从现在开始10天的date.dateByAddingUnit如果需要所有10天(date),可以通过“value:10”部分循环并添加到数组。

var tenDaysfromNow: NSDate { return NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: 10, toDate: NSDate(), options: [])! } print(tenDaysfromNow) 

而对于Swift3:

 var tenDaysfromNow: Date { return (Calendar.current as NSCalendar).date(byAdding: .day, value: 10, to: Date(), options: [])! } 

对于纯粹的Swift 3解决scheme:

Calendar.current.date(byAdding: .day, value: 10, to: Date())

你可以使用dateByAddingTimeInterval()方法。

 var dateStr = "2015-03-09" var formatter = NSDateFormatter() formatter.dateFormat = "YYYY-MM-dd" var currDate = formatter.dateFromString(dateStr) for i in 1...10 { var interval = NSTimeInterval(60 * 60 * 24 * i) var newDate = currDate?.dateByAddingTimeInterval(interval) println(newDate) } 

编辑:

正如@Martin R在评论中提到的那样,使用NSCalendar类的dateByAddingComponents()会更好:

 var calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar) var dateComponent = NSDateComponents() for i in 1...10 { dateComponent.day = i var newDate = calendar?.dateByAddingComponents(dateComponent, toDate: currDate!, options:nil) println(newDate) } 

有一个函数'dateByAddingTimeInterval()'NSDate对象。 有了这个,你可以从你的datestring创build一个NSDate。 然后添加10天= 10 * 24 * 60 * 60以获得接下来10天的NSDate值

 let today : NSDate = .... let next10days = today.dateByAddingTimeInterval(10*60*60*24); //interval = seconds //then you convert back to your date string format if you want, by using NSDateFormatter 

为了避免夏令时(@MartinR)的问题:

 let cal = NSCalendar(calendarIdentifier: NSGregorianCalendar) let next10Days = cal.dateByAddingUnit(NSCalendarUnit.DayCalendarUnit, value: 10, toDate: today, options: nil) 

对于Swift 3:

 let now = NSDate() let plusTen = now.dateByAddingDays(10)