Swift:按时间间隔过滤NSDate

时间:2015-06-09 13:52:46

标签: ios swift datepicker nsdate nscalendar

我有一个NSDate()数组,用户添加了datePicker,然后需要按当前周,当前月份和年份过滤此日期。我尝试过使用NSCalendar但我无法使用它。 我想根据它们所处的时间间隔将此NSDates分组到不同的数组中。

1 个答案:

答案 0 :(得分:0)

一种方法是简单地使用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);

当然,你可以把它包装成一个函数,它只是一个例子。