ios - 一个月中的周末天数

标签 ios swift calendar nsdate

如何获得一个月内或两个 NSDate 之间的周末数? 我试着用

做一些技巧
 calendar.components( NSCalendarUnit.WeekCalendarUnit, fromDate: startDate, toDate: endDate, options: nil) 

但是没有结果

最佳答案

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);

关于ios - 一个月中的周末天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28320719/

相关文章:

ios - Intel XDK + 谷歌服务插件 + IOS = 构建失败

ios - 将自动完成添加到现有 TableViewController Swift 中的 TextField

swift - UIScreen.mainscreen.bounds 返回错误的宽度和高度

java - 如何准确获取数组中的元素?

ios - 如何解决:在Xcode中无法附加到Pid:“777”

ios - iphone x 模拟器的标签栏问题

ios - 实现垂直时间线的最佳方式是什么 - iOS

swift - 为什么 View Controller 在 UIScrollView 上方滚动?

php - 从当前日期在开始日期和结束日期之间的 MySql 中抓取行(检查当前日期是否在开始日期和结束日期之间)

java - Android:唯一 ID 生成器和语言环境