Trouver la date du prochain CocoaHeads

Chaque mois, quelques jours après la session de CocoaHeads, nous commençons l’organisation de la session suivante. La rumeur que certaines sessions aient été annoncées la veille au soir ou même 12 heures avant est juste ça : une rumeur, au mieux une une légende urbaine. La saugrenuité (si si, c’est un vrai mot, j’ai vérifié) de telles affirmations devrait vous suffire à ne pas y apporter de crédit. Mais enfin, voilà, pour éviter tout débat inutile, je vous le dis : c’est (presque) pas vrai.

Revenons à nos moutons : chaque mois, donc, je me pose la même question : à quelle date est la prochaine session de CocoaHeads ? Autrement dit, quand tombe le 2ème jeudi du mois ?

En bon développeur flemmard qui optimise ses ressources, j’ai décidé d’écrire un bout de code pour automatiser cette recherche.

Le cahier des charges est simple : CocoaHeads Paris a lieu chaque 2ème jeudi du mois, à 19h. Trouver à quelle date a lieu la prochaine session.

Voici ma solution :

NSDate				*dateOfNextMeeting = nil;
NSDateComponents	*components;

components = [[NSCalendar currentCalendar] components:NSYearCalendarUnit | NSMonthCalendarUnit
                                             fromDate:[NSDate date]];

while (nil == dateOfNextMeeting
		|| NSOrderedDescending != [dateOfNextMeeting compare:[NSDate date]])
{
	[components setWeekdayOrdinal:2];	// CocoaHeads a lieu chaque 2ème
	[components setWeekday:5];			// jeudi du mois
	[components setHour:19];            // à 19h

dateOfNextMeeting = [[NSCalendar currentCalendar] dateFromComponents:components];
	[components setMonth:[components month] + 1];
}

NSLog(@"Next CocoaHeads is: %@", [dateOfNextMeeting description]);
}

Plus sympa que de lancer iCal à la main. Quoique, même là, j’aurai bien vu ceci :

tell iCal to activate

Je l’avoue, cela m’a pris plus de temps à écrire ce bout de code que ce qu’il ne m’en fera jamais gagner. Mais le vrai intérêt n’était pas là.

Avec les calculs de date, je suis convaincu qu’il existe autant de solution que de développeurs. Donc, pour palier l’absence de sessions en juillet et en août, votre devoir de vacances sera d’écrire votre propre solution à ce problème et la partager dans les commentaires.

Si vous avez des questions ou critiques sur ce bout de code, surtout n’hésitez pas.

Ramassage des copies fin août.

On se réveille, là bas au fond, près du radiateur caché derrière ton écran, et on lance Xcode. Oui oui, toi !

4 thoughts on “Trouver la date du prochain CocoaHeads

  1. Ce code est très bien mais il ne prend pas en compte la trêve estivale, certains risquent de se pointer jeudi ! :)

  2. sed -E “s/(.*Next CocoaHeads )is(:)/\1might be unless it’s summer break\2/” ?

    Moins clair du coup :)

  3. Quoi ? Pas de sessions sur Paris en Juillet ?
    Ca fait un mois que je cherche un iOS User Group sur Paris et maintenant que j’en trouve un il n’y a pas de sessions jusqu’en Septembre ? !!!

    Grrrrrr !!!!

    Soyez gentils, faisons une session juste pour moi :-).

Leave a Reply

Your email address will not be published. Required fields are marked *