0

週番号と曜日のみの日付を計算するにはどうすればよいですか?

たとえば、週が月曜日に始まる2012年火曜日の第24週。

4

2 に答える 2

1

非常に便利なことに、NSCalendarがすべての計算を行います。まず、NSDateComponentsを使用してパラメーターを設定します。

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setWeek:24];
[comps setWeekday:3]; //map weekday names to numbers (e.g., Sunday is 1)
[comps setYear:2012];

次に、これらの日付コンポーネントを使用してグレゴリオ暦を作成します。

 NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

そしてあなたのNSDateをつかみなさい:

 NSDate *date = [gregorian dateFromComponents:comps];
于 2012-06-13T07:20:51.250 に答える
0
    NSDate *now = [NSDate date];
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:now];
    [comp setWeek:24];
    [comp setDay:1]; 
    NSDate *resultDate = [gregorian dateFromComponents:comp];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"MMM d, yyyy"];


    NSString *myDateString = [formatter stringFromDate:resultDate];

    [gregorian release]; // Clean up allocated objects by releasing them
    [formatter release];

    NSString * date = [NSString stringWithFormat:@"Week of %@", myDateString];
于 2012-06-13T07:18:36.947 に答える