如何减去日期成分?
How to subtract date components?
今天是 Friday
,根据 NSCalendar
是 6
。我可以使用以下
Calendar.current.component(.weekday, from: Date())
如何获取上周 Saturday
的工作日部分,应该是 7
?
如果我这样做 Calendar.current.component(.weekday, from: Date()) - 6
。我收到的 0
不是有效组件。
试试这个,你必须先得到日期然后再从中减去:
var dayComp = DateComponents(day: -6)
let date = Calendar.current.date(byAdding: dayComp, to: Date())
Calendar.current.component(.weekday, from: date!)
为此,您首先需要使用 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))
}
您可以使用日历和日期组件并将所有内容放在日期扩展中,例如:
(Swift 4.1)
extension Date {
func removing(minutes: Int) -> Date? {
let result = Calendar.current.date(byAdding: .minute, value: -(minutes), to: self)
return result
}
}
今天是 Friday
,根据 NSCalendar
是 6
。我可以使用以下
Calendar.current.component(.weekday, from: Date())
如何获取上周 Saturday
的工作日部分,应该是 7
?
如果我这样做 Calendar.current.component(.weekday, from: Date()) - 6
。我收到的 0
不是有效组件。
试试这个,你必须先得到日期然后再从中减去:
var dayComp = DateComponents(day: -6)
let date = Calendar.current.date(byAdding: dayComp, to: Date())
Calendar.current.component(.weekday, from: date!)
为此,您首先需要使用 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))
}
您可以使用日历和日期组件并将所有内容放在日期扩展中,例如:
(Swift 4.1)
extension Date {
func removing(minutes: Int) -> Date? {
let result = Calendar.current.date(byAdding: .minute, value: -(minutes), to: self)
return result
}
}