4

ヨーロッパ市場向けのアプリのカスタムカレンダービューを作成しています。関数では、曜日の数を取得する必要があります...取得しますが、日曜日から始まる曜日の数を返します。月曜日からこの番号を返すようにハードコードするにはどうすればよいですか?ありがとうこれが私がこれまでに持っているものです:

-(int)getWeekDay:(NSDate*)date_
{
    NSLocale *frLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"];

    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    [gregorian setLocale:frLocale];
    NSDateComponents *comps = [gregorian components:NSWeekdayCalendarUnit fromDate:date_];
    int weekday = [comps weekday];

    NSLog(@"Week day is %i", weekday);
    return weekday;

}
4

2 に答える 2

9

これを行うにはを使用[NSCalendar setFirstWeekday:]する必要があります。

于 2012-03-21T17:32:19.233 に答える
4

これを行うための最良の方法は[NSCalendar setFirstWeekday:]、ジョシュアが彼の答えで言ったように、を使用することです。

それ以外の場合は、整数演算を実行できます。Vovaの方法は簡単です。

if (weekday>1)
    weekday--; 
else 
    weekday=7;

少し紛らわしいですが、以下のこれも機能します。

int europeanWeekday = ((weekday + 5) % 7) + 1;
于 2012-03-21T17:18:37.580 に答える