Я пытаюсь назначить первое свидание за неделю, указав год и номер недели в объекте-c. Хочу принять во внимание голландский календарь. Понедельник здесь первый день недели. Так же, как и в MS Outlook, я хотел бы, чтобы моя функция возвращала 2012-01-02, когда я передаю ей 2012 и 1 для номера недели.
Вот что я пробовал:
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *comps = [[NSDateComponents alloc] init];
comps.year = 2012;
comps.weekOfYear = 1;
comps.weekday = 2;
NSDate *date = [cal dateFromComponents:comps];
Я ожидал, что теперь эта дата будет 2012-01-02 ..., но вместо этого она вернет 2012-12-30 23:00:00. И когда я меняю comps.weekday на 1, он даже возвращает мне 2013-01-05 23:00:00 ?? !!
Для меня это вообще не имеет смысла. Может ли кто-нибудь дать мне какое-то объяснение по этому поводу или, возможно, дать мне правильный код для использования?
ОТВЕЧАТЬ:
Для меня это было решением:
[components setWeekOfYear:weekNr];
[components setYearForWeekOfYear:year];
[components setWeekday:2];