如何计算和显示从我添加日期选择器并设置本地通知的那天起的其他4天?

时间:2014-08-19 13:56:41

标签: xcode nsdate localnotification

在我的应用程序中,当我在日期选择器中选择一天时,它应该自动计算并显示其他4天,并且它应该在相应的日期通知。对于Eg。如果我输入19-08-2014,它应该计算并显示从19-08-2014(我在datepicker中输入的那天)的第3天,第7天,第14天和第21天。

我将如何实现这一目标。任何帮助将不胜感激。 我添加了当前的代码供您参考。这不符合我的目的。 请帮助。

(IBAction)save:(UIButton *)sender {
    NSDate *pickerDate = [self.picker date];
    UILocalNotification *localNotif = [[UILocalNotification alloc]init];
    //localNotif.alertBody = _enterText.text;
    localNotif.alertBody = @"Please Take Your Rabipur Dosage";
    localNotif.fireDate = pickerDate;
    localNotif.timeZone = [NSTimeZone defaultTimeZone];
    localNotif.soundName = (UILocalNotificationDefaultSoundName);
    localNotif.applicationIconBadgeNumber = 1;
    //localNotif.repeatInterval = NSDayCalendarUnit;
    [[UIApplication sharedApplication]scheduleLocalNotification:localNotif];
    [self dismissViewControllerAnimated:YES completion:nil];
}

1 个答案:

答案 0 :(得分:0)

创建一个包含您要添加的日期差异的NSDateComponents对象,并通过pickerDate将其添加到NSCalendar -dateByAddingComponents:toDate:options。然后根据生成的日期创建通知。

在这种情况下,像这样:

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setDay:3];
NSDate *reminderDate = [gregorian dateByAddingComponents:offsetComponents toDate:pickerDate options:0];

重复第7天,第14天和第21天。