Carlo
Carlo

Reputation: 25959

Initialize NSDate with custom date

I'm looking for something like:

NSDate *date = [[NSDate alloc] initWithYear:1984 month:10 Day:8];

Is there a way to do something like this?

Thanks!

Upvotes: 8

Views: 7475

Answers (1)

Matthias Bauch
Matthias Bauch

Reputation: 90117

I wrote a category for this task. NSDate is missing a lot of useful methods.

@interface NSDate (missingFunctions) 
+ (NSDate *)dateWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day;
@end


@implementation NSDate (missingFunctions)

+ (NSDate *)dateWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day {
    NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
    NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease];
    [components setYear:year];
    [components setMonth:month];
    [components setDay:day];
    return [calendar dateFromComponents:components];
}   
@end

Upvotes: 20

Related Questions