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 に答える