我在这里看了几个类似的问题,但是它们解决的问题与我正在尝试的问题略有不同。我想为昨天的开始和结束(凌晨12:00 - 凌晨12:00)创建一个NSDate
对象。我已经成功地为当天的开始和当天的结束创建了NSDate
,但我只能在当天而不是前一天进行。这似乎不应该更难,但我遇到了一些麻烦。
我今天的开始和结束NSDate
:
extension NSDate {
var startOfDay: NSDate {
return NSCalendar.currentCalendar().startOfDayForDate(self)
}
var endOfDay: NSDate? {
let components = NSDateComponents()
components.day = 1
components.second = -1
return NSCalendar.currentCalendar().dateByAddingComponents(components, toDate: startOfDay, options: NSCalendarOptions())
}
}
我尝试过添加这样的内容:
var yesterday = NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitDay, value: -1, toDate: NSDate(), options: nil)
但是我收到了错误
如果没有更多的上下文,表达的类型是不明确的
。我显然遗漏了一些重要的东西,但我似乎无法弄清楚它是什么。
答案 0 :(得分:1)
我拖延了一些扩展。在剧中扮演以下角色并享受:
import UIKit
extension NSDate {
var yesterday:NSDate {
let calendar = NSCalendar.currentCalendar()
return calendar.startOfDayForDate(calendar.dateByAddingUnit(.Day, value: -1, toDate: self, options: NSCalendarOptions.WrapComponents)!)
}
var tomorrow:NSDate {
let calendar = NSCalendar.currentCalendar()
return calendar.startOfDayForDate(calendar.dateByAddingUnit(.Day, value: 1, toDate: self, options: NSCalendarOptions.WrapComponents)!)
}
}
let now = NSDate()
now.yesterday
now.tomorrow
now.yesterday.yesterday.yesterday.yesterday
now.tomorrow.yesterday