使用NSDateComponents计算从今天开始的下个月/第n周/第n个工作日的日期

使用NSDateComponents计算从今天开始的下个月/第n周/第n个工作日的日期,nsdatecomponents,Nsdatecomponents,我想从今天算起一个日期。我想要的日期是下个月,从今天开始的第n周和第n个工作日。我正在使用下面的代码来完成它。下面代码的结果是错误的。如果假设今天是2013年3月28日,我正在寻找下个月第三个星期六的日期,那么..我期待看到2013年4月20日。相反,我看到的是2013年4月23日。我无法调试该问题。请让我知道我做错了什么。谢谢你的帮助 NSDate *todayDate = [[NSDate alloc] init] NSCalendar *gregorian = [[NSCalendar

我想从今天算起一个日期。我想要的日期是下个月,从今天开始的第n周和第n个工作日。我正在使用下面的代码来完成它。下面代码的结果是错误的。如果假设今天是2013年3月28日,我正在寻找下个月第三个星期六的日期,那么..我期待看到2013年4月20日。相反,我看到的是2013年4月23日。我无法调试该问题。请让我知道我做错了什么。谢谢你的帮助

NSDate *todayDate = [[NSDate alloc] init]

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComponents = [gregorian components:(NSYearCalendarUnit |   NSMonthCalendarUnit |NSDayCalendarUnit| NSWeekCalendarUnit | NSWeekdayOrdinalCalendarUnit | NSWeekdayCalendarUnit | NSWeekOfYearCalendarUnit ) fromDate:todayDate];

NSUInteger todayWeekdayValue = [dateComponents weekday];   
NSUInteger todayWeekdayOrdinal = [dateComponents weekdayOrdinal];

// recurringWeekday  / recurringMonthDay get passed on  from calling function 

NSUInteger nextWeekdayValue = [self getWeekdayValueForWeekdayName:recurringWeekday];
NSUInteger nextWeekdayOrdinal = recurringMonthDay;

[dateComponentsToAdd setMonth:1];
[dateComponentsToAdd setWeekday:nextWeekdayValue - todayWeekdayValue];
[dateComponentsToAdd setWeekdayOrdinal:nextWeekdayOrdinal - todayWeekdayOrdinal];

 NSDate *nextDate = [gregorian dateByAddingComponents:dateComponentsToAdd toDate:todayDate options:0];