0

我现在正在开发一个 ios 应用程序。我有一个功能,我必须显示应用程序使用的连续天数。

意味着如果我连续使用应用程序 3 天,我必须显示 3。

如果我一天没有使用它。计数器应复位。

我正在使用这个函数来计算天数。

- (int)daysBetween:(NSDate *)dt1 and:(NSDate *)dt2 {
    NSUInteger unitFlags = NSDayCalendarUnit;
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *components = [calendar components:unitFlags fromDate:dt1 toDate:dt2 options:0];
    return [components day];
}

我正在保存上次使用的日期。并在其中传递两个参数最后使用的日期和当前日期。

但是通过这个功能,如果我在晚上 11.30 使用应用程序并在凌晨 1.00 再次使用它,它将不会增加天数。

4

1 回答 1

0

你得到这个是因为你没有考虑日期的时间部分,你需要使用rangeOfUnit:.

我建议使用这个 SO 问题中提到的 @Brain 函数:

两个 NSDate 之间的天数

于 2013-09-23T07:09:34.303 回答