两个NSDates之间的差异,不包括周末?

时间:2010-03-08 10:47:12

标签: iphone cocoa nsdate

对于熟悉Excel的人,我试图在Cocoa中使用类似的NETWORKDAYS函数。

任何人都可以帮助我构建一个NSDate类别所需的信息类型,只能在两个日期之前给我一个工作日吗?

非常感谢 NIK

1 个答案:

答案 0 :(得分:2)

我知道我会给予优化,但它只是为您提供一种探索方式。 您可以使用NSCalendar和NSDateComponents:

// 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];

(见Calendars, Date Components, and Calendar Units

从那里开始,从第一个日期开始,每天都会对此进行迭代,直到结束日期为止,并且使用工作日,您可以确定当天是否在周末。 (我重复说这不是优化的,但它只是一个轨道)