为什么我的iOS方法将一年中的一周返回为1而不是53?

为什么我的iOS方法将一年中的一周返回为1而不是53?,ios,nsdate,nsdateformatter,nsdatecomponents,Ios,Nsdate,Nsdateformatter,Nsdatecomponents,` 嗨, 在iOS 5.1模拟器上运行时,此代码段错误地返回1。我相信它会回来的。我做错了什么?顺便说一句,我的模拟器预设为公历。 /约翰这取决于你的背景。来自维基百科: ISO 8601包括ISO周日期系统,周的编号系统-每周从星期一开始,并与包含该周星期四的年份相关联(因此,如果一年从一个长周末星期五开始-星期日,则一年中的第一周将在该周之后开始)。例如,2004年第1周(2004W01)从2003年12月29日星期一到2004年1月4日星期日,因为它的星期四是2004年1月1日,而2005

`

嗨, 在iOS 5.1模拟器上运行时,此代码段错误地返回1。我相信它会回来的。我做错了什么?顺便说一句,我的模拟器预设为公历。
/约翰

这取决于你的背景。来自维基百科:

ISO 8601包括ISO周日期系统,周的编号系统-每周从星期一开始,并与包含该周星期四的年份相关联(因此,如果一年从一个长周末星期五开始-星期日,则一年中的第一周将在该周之后开始)。例如,2004年第1周(2004W01)从2003年12月29日星期一到2004年1月4日星期日,因为它的星期四是2004年1月1日,而2005年第1周(2005W01)从2005年1月3日星期一到2005年1月9日星期日,因为它的星期四是2005年1月6日,所以是2005年的第一个星期四。一年中最高的周数为52或53周(2004年为53周)

然而,在一些国家,编号系统不同于ISO标准


这取决于你的背景:@rene:这是这个问题的正确答案。你能把这个作为答案吗?谢谢你的回答,谢谢你的启发。现在,我想知道我是否应该改变我的代码以使方法在每个国家都正确?
-(NSInteger)getTheUltimateWeekOfAYear:(NSInteger)year
{
    NSDateComponents *comps = [NSDateComponents alloc];
    [comps setDay:31];
    [comps setMonth:12];
    [comps  setYear:year];

    NSCalendar *usersCalendar =[[NSLocale currentLocale] objectForKey:NSLocaleCalendar];
    NSDate *date = [usersCalendar dateFromComponents:comps];

    NSDateComponents *weekComps =
    [usersCalendar components:NSWeekCalendarUnit fromDate:date];

    return [weekComps week];
}