我想要一个函数,它会返回当前一年当月的周数数组。
例如,如果当前月份是2015年8月,它将返回[32,33,34,35,36]。如果月份是2015年2月,它将返回[6,7,8,9]。
有什么方法可以得到这个?
在苹果文档NSCalendar中,类可以选择获取当前一周的数量,但这不是我需要的。
答案 0 :(得分:3)
如上所述,NSCalendar
有一个方法rangeOfUnit:inUnit:forDate:
。
正确的日历单位为CalendarUnitWeekOfYear
和CalendarUnitMonth
对于区域设置和周工作日的第一个工作日,结果可能会有所不同。
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: 想一想,如何使用此方法获得所需的输出。