Ios 一个月内的周末天数

Ios 一个月内的周末天数,ios,swift,calendar,nsdate,Ios,Swift,Calendar,Nsdate,我如何获得一个月或两个月之间的周末数? 我正试着和他玩些把戏 calendar.components( NSCalendarUnit.WeekCalendarUnit, fromDate: startDate, toDate: endDate, options: nil) 但是没有结果根据TENSRI的说法,我用swift编写代码并进行了一些修改 NSInteger count = 0; NSInteger saturday = 7; // Set the incremental int

我如何获得一个月或两个月之间的周末数? 我正试着和他玩些把戏

 calendar.components( NSCalendarUnit.WeekCalendarUnit, fromDate: startDate, toDate: endDate, options: nil) 

但是没有结果

根据TENSRI的说法,我用swift编写代码并进行了一些修改

NSInteger count = 0;
NSInteger saturday = 7;

// Set the incremental interval for each interaction.
NSDateComponents *oneDay = [[NSDateComponents alloc] init];
[oneDay setDay:1];

// Using a Gregorian calendar.
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDate *currentDate = fromDate;

// Iterate from fromDate until toDate
while ([currentDate compare:toDate] == NSOrderedAscending) {

    NSDateComponents *dateComponents = [calendar components:NSWeekdayCalendarUnit fromDate:currentDate];

    if (dateComponents.weekday == saturday) {
        count++;
    }

    // "Increment" currentDate by one day.
    currentDate = [calendar dateByAddingComponents:oneDay
                                            toDate:currentDate
                                           options:0];
}

NSLog(@"count = %d", count);
func numberOfWeekdaysBeetweenDates(#startDate:NSDate,endDate:NSDate)->Int{
    var count = 0
    var oneDay = NSDateComponents()
    oneDay.day = 1;
    // Using a Gregorian calendar.
    var calendar = NSCalendar.currentCalendar()

    var currentDate = startDate;
    // Iterate from fromDate until toDate
    while (currentDate.compare(endDate) != .OrderedDescending) {

        var dateComponents = calendar.components(.WeekdayCalendarUnit, fromDate: currentDate)
        if (dateComponents.weekday == 1 || dateComponents.weekday == 7 ) {
            count++;
        }

        // "Increment" currentDate by one day.
        currentDate = calendar.dateByAddingComponents(oneDay, toDate: currentDate, options: nil)!
    }

    return count
}

根据TENSRI的说法,我用swift编写代码时有一些修正

func numberOfWeekdaysBeetweenDates(#startDate:NSDate,endDate:NSDate)->Int{
    var count = 0
    var oneDay = NSDateComponents()
    oneDay.day = 1;
    // Using a Gregorian calendar.
    var calendar = NSCalendar.currentCalendar()

    var currentDate = startDate;
    // Iterate from fromDate until toDate
    while (currentDate.compare(endDate) != .OrderedDescending) {

        var dateComponents = calendar.components(.WeekdayCalendarUnit, fromDate: currentDate)
        if (dateComponents.weekday == 1 || dateComponents.weekday == 7 ) {
            count++;
        }

        // "Increment" currentDate by one day.
        currentDate = calendar.dateByAddingComponents(oneDay, toDate: currentDate, options: nil)!
    }

    return count
}

试着把星期六和星期天分开,然后把它们加起来。有一种更简单的方法,试着把星期六和星期天分开,然后把它们加起来。有一种更简单的方法,写在目标C中。