获取该月的第一个星期一

Get the first Monday in the month

我想测试一下今天是不是这个月的第一个星期一。我这样做 :

NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDate *today = [NSDate date];
NSInteger weekdayOfDate = [gregorianCalendar ordinalityOfUnit:NSWeekdayCalendarUnit inUnit:NSWeekCalendarUnit forDate:today];

 if (weekdayOfDate == 2) 
 {   
     // Monday 
 }

但是这个代码对于每个月的每个星期一都是正确的。我怎样才能得到每个月的第一个星期一?

您需要添加条件检查我们当前是否在该月的前 7 天。但是,另请注意,您使用的某些值已被弃用,从 iOS8 开始。我添加了完整版本的代码,包括已弃用值的替换:

NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDate *today = [NSDate date];
NSInteger weekdayOfDate = [gregorianCalendar ordinalityOfUnit:NSCalendarUnitWeekday inUnit:NSCalendarUnitWeekOfYear forDate:today];
NSInteger dayOfMonth = [gregorianCalendar ordinalityOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:today];

if (weekdayOfDate == 2 && dayOfMonth <= 7)
{
    // This is the first Monday of this month
}