NSdate диапазон всего удаления выходных Swift

Я делаю приложение бронирования праздников / выходных дней. У меня есть расширение, которое определяет общее количество дней между двумя NSDates, оно прекрасно работает, но я не знаю, как убрать все выходные дни из общего числа.

Можете ли вы помочь, пожалуйста?

extension NSDate {
    func numberOfDaysUntilDateTime(toDateTime: NSDate, inTimeZone     timeZone: NSTimeZone? = nil) -> Int {
        let calendar = NSCalendar.currentCalendar()
        if let timeZone = timeZone {
            calendar.timeZone = timeZone
        }
        var startDate: NSDate?, endDate: NSDate?
        calendar.rangeOfUnit(.Day, startDate: &startDate, interval: nil, forDate: self)
        calendar.rangeOfUnit(.Day, startDate: &endDate, interval: nil, forDate: toDateTime)
        let difference = calendar.components(.Day, fromDate: startDate!, toDate: endDate!, options: [])
        return difference.day
    }
}

1 ответ

Решение

Я нашел это. Вычисляет количество выходных дней между 2 NSDates

func numberOfWeekendsBeetweenDates(startDate startDate:NSDate,endDate:NSDate)->Int{
    var count = 0
    let oneDay = NSDateComponents()
    oneDay.day = 1;
    // Using a Gregorian calendar.
    let calendar = NSCalendar.currentCalendar()
    var currentDate = startDate;
    // Iterate from fromDate until toDate
    while (currentDate.compare(endDate) != .OrderedDescending) {
       let dateComponents = calendar.components(.Weekday, fromDate: currentDate)
        if (dateComponents.weekday == 1 || dateComponents.weekday == 7 ) {
            count++;
        }
        // "Increment" currentDate by one day.
        currentDate = calendar.dateByAddingComponents(oneDay, toDate: currentDate, options: [])!
    }
    return count
}
Другие вопросы по тегам