从我添加日期选择器并为其设置本地通知之日起,如何计算和显示另外 4 天?

Posted

技术标签:

【中文标题】从我添加日期选择器并为其设置本地通知之日起,如何计算和显示另外 4 天?【英文标题】:How to calculate and display 4 other days from the day i add in date picker and set local notification to it? 【发布时间】:2014-08-19 13:56:40 【问题描述】:

在我的应用程序中,当我在日期选择器中选择一天时,它应该自动计算并显示另外 4 天,并且它应该在相应的日子通知。例如。如果我输入 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];

【问题讨论】:

您当前的代码发生了什么。你展示的是你正在寻找的东西,而不是正在发生的事情。 我当前的代码只显示我输入通知的日期。但我希望它显示从我进入之日起的第 3 天、第 7 天、第 14 天和第 21 天,并在那些日子里发出通知。 【参考方案1】:

使用您要添加的日期差创建一个NSDateComponents 对象,并通过NSCalendar -dateByAddingComponents:toDate:options 将其添加到pickerDate。然后根据结果日期创建通知。

在这种情况下,是这样的:

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 天重复。

【讨论】:

您好,感谢您的回复。我会试试这个代码,让你知道。 嗨,我不擅长 xcode 编程。你能告诉我在哪里添加你之前提到的代码吗? 没有。这非常非常非常简单。如果您无法弄清楚,那么我将不得不向您解释以编写您的程序的内容是没有限制的。在开始编写代码之前,也许您应该参加一堂课或阅读一些书籍。

以上是关于从我添加日期选择器并为其设置本地通知之日起,如何计算和显示另外 4 天?的主要内容,如果未能解决你的问题,请参考以下文章

用户日期时间设置为 GMT,如何将日期转换为其本地化设置?

如何在 Swift 的日期选择器上设置本地通知时间

设置特定日期和时间的本地通知 swift 3

如何将图块添加到谷歌地图并为其设置动画,即不断用新图块替换它们

使用日期选择器的本地 UNMutableNotificationContent 触发日期

如何阻止计划的本地通知在特定日期后触发?