如何获得一年中一个月的数量?

时间:2015-08-20 13:07:29

标签: ios swift nscalendar week-number

我想要一个函数,它会返回当前一年当月的周数数组。

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

有什么方法可以得到这个?

在苹果文档NSCalendar中,类可以选择获取当前一周的数量,但这不是我需要的。

2 个答案:

答案 0 :(得分:3)

如上所述,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)

斯威夫特3:

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

答案 1 :(得分:1)

NSCalendar不会直接提供任何API来获取一个月内的周数。您还必须使用NSDateComponents和NSDate。

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

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