Получение первой даты в неделе с указанием года и номера недели - PullRequest
4 голосов
/ 05 января 2012

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