如何按月获得年中的周数?

How to get number of weeks by month in year?

我想要一个函数,它将 return 当年当月的周数数组。

例如,如果当前月份是 2015 年 8 月,它将 return [32、33、34、35、36]。如果月份是 2015 年 2 月,它将 return [6, 7, 8, 9].

有什么办法可以得到这个吗?

在 apple 文档中 NSCalendar class 有一个选项可以获取一年中的当前周数,但这不是我需要的。

NSCalendar 不会直接给出任何 api 来获取一个月中的周数。您也必须使用 NSDateComponents 和 NSDate。

我可以给你提示,但正如史蒂夫所建议的,你需要先自己尝试。

尝试获取范围,查看 NSCalendar 的方法- rangeOfUnit:inUnit: 想一想,如何使用此方法获得所需的输出。

如前所述,NSCalendar 有一个方法 rangeOfUnit:inUnit:forDate:。 正确的日历单位是 CalendarUnitWeekOfYearCalendarUnitMonth

结果可能因语言环境和每周第一个工作日设置而不同。

let calendar = NSCalendar.currentCalendar()
let weekRange = calendar.rangeOfUnit(NSCalendarUnit.CalendarUnitWeekOfYear, inUnit: .CalendarUnitMonth, forDate: NSDate())
let weekArray = Array(weekRange.location..<weekRange.location + weekRange.length)

Swift 3:

let calendar = Calendar.current
let weekRange = calendar.range(of: .weekOfYear, in: .month, for: Date())