1
我是可可程序设计的新手,我想知道如何获得日期之间的工作日数。所以只能从星期一到星期五。谢谢。可可 - 计算两个日期之间的工作日
我是可可程序设计的新手,我想知道如何获得日期之间的工作日数。所以只能从星期一到星期五。谢谢。可可 - 计算两个日期之间的工作日
NSDate *startDate = ...;
NSDate *stopDate = ...;
NSDateFormatter *df = [NSDateFormatter new];
df.dateFormat = @"yyyy-MM-dd";
startDate = [df dateFromString:[df stringFromDate:startDate]]; // get start of the day
NSDateComponents *comps = [NSDateComponents new];
comps.day = 1; // one day in NSDateComponents
NSUInteger count = 0;
while ([stopDate timeIntervalSinceDate:startDate] >= 0) {
NSInteger weekday = [[NSCalendar currentCalendar] components:NSCalendarUnitWeekday fromDate:startDate].weekday;
if (weekday != 1 && weekday != 6) ++count; // filter out weekend days - 6 and 1
startDate = [[NSCalendar currentCalendar] dateByAddingComponents:comps toDate:startDate options:0]; // increment start day
}
你最开始用'NSCalendar'和'NSDateComponents',然后以'3600 * 24'结束。不要用秒来增加天数!不是每天都有24小时,不是每小时都有3600秒。日期和时间是一种痛苦。 – JustSid 2014-08-27 12:18:01
@JustSid,请给出一些直接的例子:“不是每天都有24小时,而不是每小时都有3600秒。”无论如何,谢谢,更新。 – malex 2014-08-27 12:22:35
例如,从夏令时切换到夏令时。闰秒。有时会删除或添加整个日期以使日历同步。 – JustSid 2014-08-27 14:08:24