/ / Swift: Фільтрування NSDate за часовими інтервалами - ios, swift, дата-вибір, nsdate, nscalendar

Swift: фільтрація NSDate за часом - ios, swift, datepicker, nsdate, nscalendar

У мене є масив с NSDate() що користувач додає з datePicker, то ці дати потрібно відфільтрувати за поточним тижнім, поточним місяцем та роком. Я спробував використовувати NSCalendar але я не могла змусити його працювати. Я хочу це згрупувати NSDates в різних масивах залежно від часового інтервалу, в якому вони знаходяться.

Відповіді:

0 для відповіді № 1

Один із способів - просто використовувати NSPredicate:

NSArray *arrayOfDates = @[
[NSDate dateWithTimeIntervalSince1970:0],
[NSDate dateWithTimeIntervalSince1970:100],
[NSDate dateWithTimeIntervalSince1970:200]
];

NSDate *leftLimit = [NSDate dateWithTimeIntervalSince1970:50];
NSDate *rightLimit = [NSDate dateWithTimeIntervalSince1970:150];
NSPredicate *dateIntervalPredicate = [NSPredicate predicateWithFormat:@"self > %@ && self < %@", leftLimit, rightLimit];
NSArray *result = [array filteredArrayUsingPredicate:dateIntervalPredicate];
NSLog(@"Result: %@", result);

Звичайно, ви можете перетворити його на функцію, це просто приклад.