在Objective-C中获取下周六的日期?

你如何获得今天在Objective-C for iOS之后发生的第一个星期六的日期?

这将指导您完成操作日历日期的过程:

日历计算

NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]; NSDate *date = [NSDate date]; NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit fromDate:date]; NSInteger todayWeekday = [weekdayComponents weekday]; enum Weeks { SUNDAY = 1, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }; NSInteger moveDays=SATURDAY-todayWeekday; if (moveDays<=0) { moveDays+=7; } NSDateComponents *components = [NSDateComponents new]; components.day=moveDays; NSCalendar *calendar=[[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar]; NSDate* newDate = [calendar dateByAddingComponents:components toDate:date options:0]; NSLog(@"%@",newDate); 

[NSDate dateWithNaturalLanguageString: @"next Saturday"]


编辑:从OS X 10.9和iOS 8开始,您可以这样做:

 NSCalendar *calendar = [NSCalendar currentCalendar]; NSDate *now = [NSDate date]; NSDateComponents *saturday = [[NSDateComponents alloc] init]; saturday.weekday = 7 /* Saturday */; NSDate *nextSaturday = [calendar nextDateAfterDate:now matchingComponents:saturday options:0];