如何减去日期组件?

时间:2016-12-30 10:39:46

标签: ios swift nscalendar

今天是Friday,根据6 NSCalendar。我可以使用以下

来解决这个问题
Calendar.current.component(.weekday, from: Date())

如何获得上周Saturday的工作日组件,该组件应为7

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

3 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分: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))
}

答案 2 :(得分:1)

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

Swift 4.1

extension Date {
    func removing(minutes: Int) -> Date? {
        let result =  Calendar.current.date(byAdding: .minute, value: -(minutes), to: self)
        return result
    }
}