2011-08-17 9 views
1

월의 첫 번째 설정 : 이제내가가 증가되어있는 NSDate/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; 
    } 

나에게

나는 경우 1을 전달
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 

을 줘!

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 

나는 경우이 전달

!

+1

'교체 [dateComponents의 setDay : 1]''[dateComponentsSetFirst setDay : 1]와' – jrturton

+0

흠 .... stuuupid ;-) 내가 이전 날짜 구성 요소를 사용하려고 ... – clement

답변

2

날짜에 구성 요소를 추가하지 않습니다. 주어진 날짜의 dateComponents를 초기화하고, 원하는 경우 일과 월을 설정 한 다음 dateFromComponents를 가져옵니다. Apple Date and Time Programming Guide

NSDateComponents *dateComponents = [gregorian components:(NSYearCalendarUnit | 
NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]]; 
[dateComponents setDay:1]; 
[dateComponents setMonth:1]; 
self.date = [gregorian dateFromComponents:dateComponents]; 
+0

분명히, 그것은 작동하지 않습니다 : '(그것은 1901 년 12 월에 나를 둔다.) ^^ – clement

+0

날짜에서 dateComponents를 초기화 했습니까? –

+0

첫 번째 게시물을 편집했습니다. self.date가 날짜입니다. 이제, 나는 분명히 작동하지 않습니다 넣어 ... 날짜가 첫 번째로 설정되어 있지 않습니다 – clement