Objective c 将NSString与星期几和NSDate与时间组合到NSDate对象中

Objective c 将NSString与星期几和NSDate与时间组合到NSDate对象中,objective-c,cocoa-touch,nsdate,uidatepicker,uidatepickermodetime,Objective C,Cocoa Touch,Nsdate,Uidatepicker,Uidatepickermodetime,我有以下两个目标: 带有一周中某一天的NSString对象(星期一、星期二、星期三等)。 使用UIDatePickerModeTime从UIDatePicker保存的NSDate对象 我需要创建第三个对象NSDate,它是NSString的下一个实例,时间从NSDate开始 //Ex. Tuesday NSString *confessOn = [[NSUserDefaults standardUserDefaults] objectForKey:kRemindToConfessOn]; //

我有以下两个目标: 带有一周中某一天的NSString对象(星期一、星期二、星期三等)。 使用UIDatePickerModeTime从UIDatePicker保存的NSDate对象

我需要创建第三个对象NSDate,它是NSString的下一个实例,时间从NSDate开始

//Ex. Tuesday
NSString *confessOn = [[NSUserDefaults standardUserDefaults] objectForKey:kRemindToConfessOn];

//Ex. 2011-02-11 20:13:19
NSDate *confessAt = [[NSUserDefaults standardUserDefaults] objectForKey:kRemindToConfessAt];

NSDate *fireDate = //should be an NSDate with the value 2011-02-15 20:13:19
NSDateFormatter * df = [[[NSDateFormatter alloc] init] autorelease];
[df setLocale:[[[NSLocale alloc] initWithLocaleIdentifier(@"en")] autorelease];
[df setDateFormat:@"EEEE"];
NSDate *confessOnDate = [df dateFromString:confessOn];
NSCalendar *cal = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents *confessOnComps = [cal components:NSWeekdayCalendarUnit fromDate:confessOnDate];
NSDateComponents *confessAtComps = [cal components:NSWeekdayCalendarUnit fromDate:confessAt];
NSInteger weekdayDifference = ([confessOnComps weekday] + 7 - [confessAtComps weekday]) % 7;
NSDate *fireDate = [confessAt dateByAddingTimeInterval:weekdayDifference * 86400];