1

NSDateCompomentsのおかげでインクリメント/デクリメントされるNSDateを使用しています。

dateComponents = [[NSDateComponents alloc] init];
    self.date = [gregorian dateByAddingComponents:dateComponents toDate:[NSDate date] options:0];

..。

[dateComponents setDay:1];
                    self.date = [gregorian dateByAddingComponents:dateComponents toDate:self.date options:0];
                    [dateComponents setDay:0];

ここで、NSDateを月の最初(およびその年の最初の月)に設定する日を設定したいのですが、その方法がわかりません。

どうもありがとう!!!

編集:

 NSDateComponents *dateComponentsSetFirst = [gregorian components:( NSYearCalendarUnit |
                                                              NSMonthCalendarUnit | NSDayCalendarUnit ) fromDate:self.date];

    switch (self.segmentedControl.selectedSegmentIndex) {
        case 0:
            requestTy = @"hours";
            break;
        case 1:
            requestTy = @"days";
            NSLog (@"avant %@",self.date);
            [dateComponents setDay:1];
            self.date = [gregorian dateFromComponents:dateComponentsSetFirst];
            [dateComponents setDay:0];
            NSLog (@"après %@",self.date);
            break;
        case 2:
            requestTy = @"months";
            NSLog (@"before %@",self.date);
            [dateComponents setMonth:1];
            self.date = [gregorian dateFromComponents:dateComponentsSetFirst];
            [dateComponents setMonth:0];
            NSLog (@"after : %@",self.date);
            break;
        default:
            break;
    }

ください

2011-08-17 11:23:34.365 e-mars[20942:207] avant 2011-08-17 09:23:30 GMT
2011-08-17 11:23:34.366 e-mars[20942:207] après 2011-08-16 22:00:00 GMT

ケース1に合格すると!

2011-08-17 11:26:05.747 e-mars[20942:207] before 2011-08-16 22:00:00 GMT
2011-08-17 11:26:05.747 e-mars[20942:207] after : 2011-08-16 22:00:00 GMT

ケース2に合格すると!

4

1 に答える 1

2

日付にコンポーネントを追加していません。指定された日付からdateComponentsを初期化し、日と月(および必要に応じて年)を設定してから、dateFromComponentsを取得するだけです。 Apple DateandTimeプログラミングガイド

NSDateComponents *dateComponents = [gregorian components:( NSYearCalendarUnit |
NSMonthCalendarUnit | NSDayCalendarUnit ) fromDate:[NSDate date]];
[dateComponents setDay:1];
[dateComponents setMonth:1];
self.date = [gregorian dateFromComponents:dateComponents];
于 2011-08-17T08:24:35.807 に答える