iPhone SDK,如何获得星期五20:00的NSDate对象?
有谁知道如何获得即将到来的星期五20:00的NSDate?
是的, 这篇文章教你如何获得本周的星期天。
我很快就调整它在星期五20:00(假设公历)
NSDate *today = [[NSDate alloc] init]; NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; // Get the weekday component of the current date NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit fromDate:today]; /* Create a date components to represent the number of days to add to the current date. The weekday value for Friday in the Gregorian calendar is 6, so add the difference between 6 and today to get the number of days to add. Actually, on Saturday that will give you -1, so you want to subtract from 13 then take modulo 7 */ NSDateComponents *componentsToAdd = [[NSDateComponents alloc] init]; [componentsToAdd setDay: (13 - [weekdayComponents weekday]) % 7]; NSDate *friday = [gregorian dateByAddingComponents:componentsToAdd toDate:today options:0]; /* friday now has the same hour, minute, and second as the original date (today). To normalize to midnight, extract the year, month, and day components and create a new date from those components. */ NSDateComponents *components = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate: friday]; // And to set the time to 20:00 [components setHour:22]; friday = [gregorian dateFromComponents:components];