1
NSDateComponents
和NSCalendar
有一個功能,可以使用NSCalendarUnit
獲得本月的第n個工作日,NSWeekdayOrdinalCalendarUnit
。使用NSDateComponents的月份的最後一個工作日
例如月的第二個星期一。
這太棒了,但是,我需要檢查NSDate
的某個實例是本月的最後一個或第二個工作日。我想不出一個簡單的方法來做到這一點。我希望有一個簡單的竅門,並不要求你循環整個月的所有星期一。
你們有什麼想法嗎?
太簡單了,喜歡它! 簡單的建議:蘋果文檔說dateByAddingComponents:「請注意,一些計算可能需要相對較長的時間。」我想這是計算比添加天數更復雜(例如年和月,各種長度),但你也可以使用「dateWithTimeInterval:(86400 * 7)sinceDate:dateToTest」。 我不知道哪一個更快。 –
@Micazeve 24小時增加7次可能會在夏時制變化和其他微妙的日曆異常情況下產生問題。爲什麼正確的'NSCalendar'方法可能需要一些時間是因爲它解決了所有這些異常。 –
哦,我沒有想到夏時制的變化...... 感謝您的解釋! –