如何减去日期组件?

问题描述 投票:6回答:3

今天是Friday,根据6NSCalendar。我可以通过使用以下内容得到这个

Calendar.current.component(.weekday, from: Date())

我怎么得到上周Saturday的工作日组件,应该是7

如果我做Calendar.current.component(.weekday, from: Date()) - 6。我得到0这是无效的组件。

ios swift nscalendar
3个回答
11
投票

试试这个,你必须先获取日期然后再从中减去:

var dayComp = DateComponents(day: -6)
let date = Calendar.current.date(byAdding: dayComp, to: Date())
Calendar.current.component(.weekday, from: date!)

6
投票

首先,您需要使用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))
}

1
投票

您可以使用日历和日期组件,并将所有内容放在日期扩展名中,例如:

(斯威夫特4.1)

extension Date {
    func removing(minutes: Int) -> Date? {
        let result =  Calendar.current.date(byAdding: .minute, value: -(minutes), to: self)
        return result
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.