0

我的区域格式是美国,我得到的周数与我在美国的 Mac OSx 上得到的周数不同。我使用的是 iOS 5,并且在这个 sdk 版本之前没有在 iOS 上编程。所以我只是想确保我没有做错什么。使用下面的这段代码,我在今年的最后一周得到了我认为错误的数字 53。我一周的第一天定在星期日。请指教,谢谢。

 NSCalendar* calendar = [NSCalendar currentCalendar];
    NSDate *date = [NSDate date];


    NSDateComponents *dateComponents = [calendar components:( NSWeekCalendarUnit) fromDate:date ];
    int week = (int)[dateComponents week];


    NSLog(@"%i", week);

作为 [NSDate date] 12 月 8 日,它返回第 50 周,但在 Mac OSX 上我得到第 49 周

4

2 回答 2

1

首先,我看到您更改了代码以摆脱“gregorianCalendar”的废话。好的。

当我在测试应用程序中尝试您的代码时:

NSCalendar *calendar = [NSCalendar currentCalendar]; 
NSDateComponents *dateComponents = [calendar components:( NSWeekCalendarUnit) fromDate:[NSDate date]];
int week = (int)[dateComponents week];
[calendar release];
NSLog( @"week is %d", week);
return week;

我要 49 岁(这对我来说很有意义)。

如果你到了 53 岁,那么你输入了错误的日期。

于 2011-12-08T18:42:08.417 回答
0

你检查语言环境了吗?例如,在某些情况下,美国和欧洲的周数不同。

于 2012-04-18T16:57:48.277 回答