如何根据一些参数向 NSDate 添加额外的天数?
How do I add additional days to NSDate depending on a few parameters?
我正在尝试创建一个包含一些参数的提取日期,但我对这里的逻辑有点困惑。
用户案例 #1:
- 在同一天创建 3 个对象
- 获取日期 = 1 天后、2 天后、3 天后
用户案例 #2:
- 第二天创建另一个对象
- 提取日期 = 4 天后(从原始日期算起),因为要考虑之前的提取日期
用户案例 #3:
- 在原日期后的 4 天内创建另一个对象
- 获取日期 = 创建日期后 1 天(原始日期后 5 天)
这是我目前的情况:
- (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"(等待获取),它不会计算使用我当前的代码正确获取日期。
- 创建 NSFetchRequest
- 按 fetchDate 降序排列 fetchRequest
- 将 fetchRequest 限制为 1 个对象
- 执行fetchRequest
您在该数组中拥有的一个对象包含最后一个 fetchDate。我想如果你得到的 fetchDate 比今天早,你就必须分支。
- 如果 fetchDateOld <= 今天,fetchDateNew 是明天
- 如果 fetchDateOld > 今天,fetchDateNew 是 fetchDateOld + 1 天
我正在尝试创建一个包含一些参数的提取日期,但我对这里的逻辑有点困惑。
用户案例 #1:
- 在同一天创建 3 个对象
- 获取日期 = 1 天后、2 天后、3 天后
用户案例 #2:
- 第二天创建另一个对象
- 提取日期 = 4 天后(从原始日期算起),因为要考虑之前的提取日期
用户案例 #3:
- 在原日期后的 4 天内创建另一个对象
- 获取日期 = 创建日期后 1 天(原始日期后 5 天)
这是我目前的情况:
- (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"(等待获取),它不会计算使用我当前的代码正确获取日期。
- 创建 NSFetchRequest
- 按 fetchDate 降序排列 fetchRequest
- 将 fetchRequest 限制为 1 个对象
- 执行fetchRequest
您在该数组中拥有的一个对象包含最后一个 fetchDate。我想如果你得到的 fetchDate 比今天早,你就必须分支。
- 如果 fetchDateOld <= 今天,fetchDateNew 是明天
- 如果 fetchDateOld > 今天,fetchDateNew 是 fetchDateOld + 1 天