Я пытаюсь получить первое свидание за неделю, указав год и номер недели в target-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];