2016-09-19 63 views
1

我想从componentyear,weekdayOfWeek得到一个日期,但我从上述函数得到奇怪的日期。下面是我做的:从NSCalendar.dateFromComponents获取奇怪的日期

let calendar = NSCalendar(identifier: NSCalendarIdentifierISO8601) 
let components = NSDateComponents() 
components.weekday = 1 
components.weekOfYear = 16 
components.yearForWeekOfYear = 2016 
let dateKW = calendar?.dateFromComponents(components) 

变量dateKW等于24月2016年当我改变weekday 2,我得到18月2016年为什么这样呢?第一天不应该是2016年4月17日?

回答

3

在公历中,工作日单位范围从1=Sunday,2=Monday,...到7=Saturday。如果您所在地区的第一个工作日是星期一(例如德国),那么2016年的第18个日历周 的范围从4月18日(星期一)到4月24日(星期日)。

在一周#因此,要求周日16

components.weekday = 1 
components.weekOfYear = 16 
components.yearForWeekOfYear = 2016 

如果你需要 周的第一天,然后设置

components.weekday = calendar.firstWeekday 

或者干脆正确返回4月24日,2016年别根本不设置components.weekday

+0

哦好吧,所以它更像是一个1 =星期日的枚举... 7 =星期六好了,现在我明白了,谢谢。我从其他渠道获得周日,周一和周年的数据,我必须将它们显示为正确的日期。是的,我在德国。现在我的解决方案是在我的工作日添加1,幸好它似乎为我返回了正确的日期。 – Adarkas2302