获取该月的第一个星期一
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
}
我想测试一下今天是不是这个月的第一个星期一。我这样做 :
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
}