如何根据一些参数向 NSDate 添加额外的天数?

How do I add additional days to NSDate depending on a few parameters?

我正在尝试创建一个包含一些参数的提取日期,但我对这里的逻辑有点困惑。

用户案例 #1:

用户案例 #2:

用户案例 #3:

这是我目前的情况:

- (NSDate *)createdAtDate {
    NSDate *now = [NSDate date];
    return now;
}

- (NSDate *)fetchDate {
    NSDateComponents *dayComponent = [[NSDateComponents alloc] init];
    NSUInteger count = [[RecordingController sharedInstance].memos count];
    dayComponent.day = count;

    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDate *nextDate = [calendar dateByAddingComponents:dayComponent toDate:[NSDate date] options:0];

    return nextDate;
 }

基本上,我正在计算保存到核心数据中的每个实例,并将其计算为之后的天数,但如果要保存的对象很多,这可能会成为一个问题,因为获取日期会继续增加。

我试图解决的问题是,如果对象是在不同的日期创建的,或者如果没有其他对象 "queued"(等待获取),它不会计算使用我当前的代码正确获取日期。

  1. 创建 NSFetchRequest
  2. 按 fetchDate 降序排列 fetchRequest
  3. 将 fetchRequest 限制为 1 个对象
  4. 执行fetchRequest

您在该数组中拥有的一个对象包含最后一个 fetchDate。我想如果你得到的 fetchDate 比今天早,你就必须分支。

  1. 如果 fetchDateOld <= 今天,fetchDateNew 是明天
  2. 如果 fetchDateOld > 今天,fetchDateNew 是 fetchDateOld + 1 天