2010-03-08 4 views
0

Pour ceux qui sont familiers avec Excel, j'essaie d'utiliser une fonction similaire NETWORKDAYS dans Cocoa. Est-ce que n'importe qui peut aider avec le type d'information dont j'ai besoin pour construire une catégorie NSDate qui peut me donner seulement les jours ouvrables entre deux dates?Différence entre 2 NSDates, excluant Weekends?

merci beaucoup Nik

Répondre

2

Je sais que je vais donner n'est pas optimisé, mais il est juste de vous donner un moyen d'explorer. Vous pouvez utiliser le NSCalendar et les NSDateComponents comme ça:

// Date of today 
NSDate *today = [NSDate date]; 
// init the gregorian calendar 
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
// Retrieve the NSDateComponents for the current date 
NSDateComponents *weekdayComponents = [gregorian components:(NSDayCalendarUnit | NSWeekdayCalendarUnit) fromDate:today]; 
// Number of the day in the week (e.g 2 = Monday) 
NSInteger weekday = [weekdayComponents weekday]; 

(voir Calendars, Date Components, and Calendar Units)

De là, vous commencez à partir de votre premier rendez-vous et vous itérer ce pour chaque jour jusqu'à ce que votre date de fin et en utilisant le jour de la semaine vous pouvez déterminer si le jour est pendant un week-end ou non. (J'ai répété que ce n'est pas optimisé mais c'est juste une piste)

+0

merci Yannick. Si quelqu'un connaît un moyen plus efficace que d'énumérer chaque instance de nsdate pour vérifier la valeur d'un jour de la semaine, alors j'apprécierais. –