我需要将这个函数翻译成swift。 基本上它得到了本周的“n”日是什么。因此,例如,如果我将它与 NSDate().getWeekDay(0) 一起使用,它会给我 9 月 11 日星期日,依此类推。 但似乎 rangeOfUnit 不再存在于 Swift-3 中。 这是我之前在 Swift-2 中的实现
extension NSDate { func getWeekDay(day: Int) -> NSDate { var beginningOfWeek: NSDate? NSCalendar.currentCalendar().rangeOfUnit(NSCalendarUnit.WeekOfYear, startDate: &beginningOfWeek, interval: nil, forDate: self) let comps = NSDateComponents() comps.day = day comps.minute = NSCalendar.currentCalendar().component(NSCalendarUnit.Minute, fromDate: self) comps.hour = NSCalendar.currentCalendar().component(NSCalendarUnit.Hour, fromDate: self) let nextDate = NSCalendar.currentCalendar().dateByAddingComponents(comps, toDate: beginningOfWeek!, options: .SearchBackwards) return nextDate! } }
最佳答案
有一个替代方法可以获取一周的开始时间 直接转换为 Swift 3:
extension Date {
func getWeekDay(day: Int) -> Date {
let cal = Calendar.current
let comps = cal.dateComponents([.weekOfYear, .yearForWeekOfYear], from: self)
let beginningOfWeek = cal.date(from: comps)!
let nextDate = cal.date(byAdding: .day, value: day, to: beginningOfWeek)!
return nextDate
}
}
关于ios - 如何获取日期的 'n' 工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39527084/