2010-10-05 17 views

Respuesta

20

Escribí una categoría para esta tarea. A NSDate le faltan muchos métodos útiles.

@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 
+0

Funciona como un encanto. Gracias :). – Carlo

+7

No falta. Intencionalmente no está allí. La teoría es que un hipotético '+ [NSDate dateWithYear: month: day:]' haría que los desarrolladores presuponen que todos usaron el calendario gregoriano. Mejor, en la mente de Apple, dividir la manipulación momento-en-tiempo ('NSDate') de la manipulación del calendario del mundo real (' NSCalendar' y 'NSDateComponents'.) –

+0

thx para la explicación, nunca lo pensó así. –

Cuestiones relacionadas