Obtenir l'année en cours

En relisant des classes, je me suis aperçu que j'obtenais l'année courante de deux manières:
ou
La première est plus concise.
La deuxième plus propre ?
Comment faites-vous de votre côté ?
NSUInteger currentYear = [[[[NSDate date] description] substringToIndex:4] intValue];
ou
NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];<br />NSDateComponents *yearComponents = [gregorian components:NSYearCalendarUnit fromDate:[NSDate date]];<br />NSUInteger currentYear = [yearComponents year];
La première est plus concise.
La deuxième plus propre ?
Comment faites-vous de votre côté ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu rigoles j'espère, tu utilises pas la première quand même ? (Et depuis quand on peut se baser sur la "description" d'un objet, méthode qui renvoie des infos pour le débogage en général, pour récupérer une info ?!)
Sinon dans la 2e pourquoi tu imposes le calendrier grégorien au lieu de prendre le calendrier courant de l'utilisateur ? Bon en même temps il me semble qu'il n'y a que 5 pays qui n'utilisent pas ce calendrier grégorien, mais bon par principe, j'aurais plutôt écrit : C'est plus générique, non ? (Et quasi aussi concis que ce truc dégoutant que tu proposais en première solution :P)
Hé, ho... justement, ça sert à ça ce genre de sujet.
Parfois on utilise des bouts de code qui ont plusieurs années... ;-)
OK pour la forme concise de la seconde.