问题
As today is Friday
, which is 6
according to NSCalendar
. I can get this by using the following
Calendar.current.component(.weekday, from: Date())
How do I get weekday component of Saturday
last week, which should be 7
?
If I do Calendar.current.component(.weekday, from: Date()) - 6
. I am getting 0
which is not valid component.
回答1:
Try this, you have to get the date first then subtract again from it:
var dayComp = DateComponents(day: -6)
let date = Calendar.current.date(byAdding: dayComp, to: Date())
Calendar.current.component(.weekday, from: date!)
回答2:
For that first you need to get that date using calendar.date(byAdding:value:to:)
and then get day number from it.
extension Date {
func getDateFor(days:Int) -> Date? {
return Calendar.current.date(byAdding: .day, value: days, to: Date())
}
}
Now simply use thus function and get your days.
if let date = Date().getDateFor(days: -6) {
print(Calendar.current.component(.weekday, from: date))
}
回答3:
you can use calendar and date components and put everything in a Date extension, something like:
(Swift 4.1)
extension Date {
func removing(minutes: Int) -> Date? {
let result = Calendar.current.date(byAdding: .minute, value: -(minutes), to: self)
return result
}
}
来源:https://stackoverflow.com/questions/41394817/how-to-subtract-date-components