0

現在、1 つの iOS アプリを開発しています。アプリが使用されている連続した日数を表示する必要がある機能があります。

つまり、アプリを 3 日間連続して使用すると、3 を表示する必要があります。

そして、私が1日それを使用しなかった場合。カウンターがリセットされます。

この関数を使用して日数を計算しています。

- (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];
}

最後に使用した日付を保存しています。最後に使用した日付と現在の日付の 2 つのパラメーターを渡します。

しかし、この機能により、午後 11 時 30 分にアプリを使用し、午前 1 時に再度使用すると、日は増加しません。

4

1 に答える 1

0

日付の時間部分を考慮していないため、これを取得します。使用する必要がありますrangeOfUnit:

この SO の質問に記載されている @Brain 関数を使用することをお勧めします。

2 つの NSDates 間の日数

于 2013-09-23T07:09:34.303 に答える