2011-05-10 77 views

回答

11

根據蘋果文檔的NSDate的,還有一類方法:

+ (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)seconds 

60秒/分鐘* 60分鐘/小時* 24小時/天* 30天應該給你所需的秒數。

所以嘗試:

NSDate *futureDate = [NSDate dateWithTimeIntervalSinceNow:60 * 60 * 24 * 30]; 
+0

我想過去的約會.....如何做到這一點的任何想法? – 2012-08-28 13:44:13

+1

有人希望你謹慎對待風,並發現你可以使用負NSTimeInterval來獲取過去的日期/時間。 – mharper 2012-08-30 19:59:01

8

如下你可以這樣做:

NSDate *now = [NSDate date]; 

    // now a NSDate object for now + 30 days 
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 


    NSDateComponents *offsetComponents = [[NSDateComponents alloc] init]; 
    [offsetComponents setDay:30]; 
    NSDate *endDate = [gregorian dateByAddingComponents:offsetComponents toDate:now options:0]; 
    [offsetComponents release]; 

    [gregorian release]; 
+0

如果你想同時添加不同成分這也適用:你可以添加天,月,年,小時,分鐘和秒! – 2011-05-10 18:33:30