今天是Friday
,根據NSCalendar
,這是6
。我可以通過以下得到這個如何減去日期組件?
Calendar.current.component(.weekday, from: Date())
如何獲得上週Saturday
的工作日部分,這應該是7
?如果我做Calendar.current.component(.weekday, from: Date()) - 6
。我得到0
這是無效的組件。
今天是Friday
,根據NSCalendar
,這是6
。我可以通過以下得到這個如何減去日期組件?
Calendar.current.component(.weekday, from: Date())
如何獲得上週Saturday
的工作日部分,這應該是7
?如果我做Calendar.current.component(.weekday, from: Date()) - 6
。我得到0
這是無效的組件。
試試這個,你必須首先獲取日期然後再次減:
var dayComp = DateComponents()
dayComp.day = -6
let date = Calendar.current.date(byAdding: dayComp, to: Date())
Calendar.current.component(.weekday, from: date!)
該解決方案的工作原理是完美的。 – Coder221
對於首先你需要使用calendar.date(byAdding:value:to:)
得到那個日期,然後從它那裏得到日數。
extension Date {
func getDateFor(days:Int) -> Date? {
return Calendar.current.date(byAdding: .day, value: days, to: Date())
}
}
現在簡單地使用這樣的功能,讓你的日子。
if let date = Date().getDateFor(days: -6) {
print(Calendar.current.component(.weekday, from: date))
}
欣賞它:) – Coder221
你想要上個星期六的約會嗎? –
不,我想組件,它是7,基本上我喜歡知道如何減去組件。例如,星期一是2.如果我想知道3天前的組件,那麼應該是星期五,但是如果我做2 - 3,我會得到-1,這是無效的。希望我清楚 – Coder221
你必須得到日期,然後從中減去一天,而不是減去組件 – Tj3n