4

我正在尝试获得一周中的第一个日期,并在 Objective-c 中给出年份和周数。我想考虑荷兰日历。星期一是这里一周的第一天。因此,就像在 MS Outlook 中一样,我希望我的函数在我将 2012 和 1 作为周数传递给它时返回 2012-01-02 。

这是我尝试过的:

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];
4

0 回答 0