NSDate获得今天后第30天的价值

时间:2011-05-10 16:26:52

标签: iphone objective-c

我需要在今天的第30天设置NSDate的值。 我正在寻找一种快速的方法来做到这一点。

坦克!

2 个答案:

答案 0 :(得分:11)

根据Apple的NSDate文档,有一种类方法:

+ (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)seconds

60秒/分钟* 60分钟/小时* 24小时/天* 30天应该为您提供所需的秒数。

所以试试:

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

答案 1 :(得分: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];