月份的我使用的是遞增的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;
}
給我
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
!
取代'[dateComponents setDay:1]'和'[dateComponentsSetFirst setDay:1]' – jrturton
嗚嗚.... stuuupid ;-)我試圖用舊的日期部分... – clement