2016-09-19 7 views
1

componentyear, weekdayOfWeek의 날짜를 얻으려고하고 있지만 위의 기능에서 이상한 날짜가 표시됩니다. 여기에 내가 무엇 : 나는 weekday 2로 변경하면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 4월 2016은 동일, 내가 18 4월 2016 얻을 왜 그게 경우입니까? 첫날 17 일까요? 2016 년 4 월 17 일?

답변

3

그레고리력에서 평일 단위는 1=Sunday, 2=Monday, 7=Saturday입니다. 로케일의 첫 번째 평일이 월요일이 인 경우 (예 : 독일) 12 월 16 일 월요일 (월요일)부터 4 월 24 일 (일요일)까지 2016 년에 18 번째 주인 이 표시됩니다.

따라서 주 #에서 일요일을 요청 (16)

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

당신이 주의 최초의 날 단순히

components.weekday = calendar.firstWeekday 

또는를 설정해야하는 경우 올바르게 년 4 월 24 일 2016 년 반환 돈 ' components.weekday을 전혀 설정하지 않았습니다.

+0

oh ok 그래서 1 = sunday ...와 enum과 더 비슷합니다. 7 = saturday alrighty, 이제 감사합니다. 다른 출처에서 평일, weekofyear 및 Year 데이터를 가져오고 있으며이를 적절한 날짜로 표시해야합니다. 그리고 나는 독일에 있습니다. 내 솔루션은 이제 내 평일에 1을 더하고 다행스럽게도 나를 위해 올바른 날짜를 반환하는 것 같습니다. – Adarkas2302