1

SQL liteデータベースの結果を日付でフィルタリングしようとしていますが、iOSの日付と時刻のオブジェクトがひどく、その方法がよくわかりません。NSPredicateを設定して、今日、過去7日間、過去30日間、過去90日間で結果をフィルタリングするにはどうすればよいですか?

ありがとう

4

1 に答える 1

2

- (NSPredicate *)predicateForDateWithinLast30Days
{

    NSDate *currentDate = [NSDate date];// get the current date


    // get the date 30 days prior to current date

    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *dateComps = [[NSDateComponents alloc] init];
    [dateComps setDay:-30];
    NSDate *date30DaysAgo = [calendar
          dateByAddingComponents:dateComps
          toDate:currentDate options:0];

    // create the predicate
    NSPredicate *last30DaysPredicate = [NSPredicate
          predicateWithFormat:@"dateToCompare > %@", date30DaysAgo];

    return last30DaysPredicate;
}
于 2013-02-13T05:31:15.087 に答える