Iphone 使用NSDateComponents的当月最后一个工作日

Iphone 使用NSDateComponents的当月最后一个工作日,iphone,ios,cocoa-touch,nsdate,nsdatecomponents,Iphone,Ios,Cocoa Touch,Nsdate,Nsdatecomponents,NSDateComponents和NSCalendar具有使用NSWeekdayOrdinalCalendarUnit获取当月第n个工作日的功能 例如,每月的第二个星期一 这真是太棒了,但是,我需要检查NSDate的某个实例是否是一个月的最后一个或第二个工作日。我想不出一个简单的方法来做到这一点。我希望有一个简单的技巧,不需要你循环整个月的所有周一 你们有什么想法吗?只需添加七天(使用NSCalendar的日期,通过添加组件:toDate:options:)并检查结果月份是否相同。如此简单,热爱

NSDateComponents
NSCalendar
具有使用
NSWeekdayOrdinalCalendarUnit
获取当月第n个工作日的功能

例如,每月的第二个星期一

这真是太棒了,但是,我需要检查
NSDate
的某个实例是否是一个月的最后一个或第二个工作日。
我想不出一个简单的方法来做到这一点。我希望有一个简单的技巧,不需要你循环整个月的所有周一


你们有什么想法吗?

只需添加七天(使用
NSCalendar
日期,通过添加组件:toDate:options:
)并检查结果月份是否相同。

如此简单,热爱它!简单的建议:苹果文档通过添加组件来描述Date:“注意,一些计算可能需要相对较长的时间。”。我猜这是为了计算比增加天数更复杂的数据(例如年和月,长度不同),但是你也可以使用“dateWithTimeInterval:(86400*7)sinceDate:dateToTest”。我不知道哪一个更快。@Micazeve仅仅增加7倍24小时可能会在夏令时变化和其他微妙的日历异常方面产生问题。正确的
NSCalendar
方法可能需要一些时间的原因是因为它解释了所有这些异常。哦,我没有考虑白天的变化。。。谢谢你的解释!