2013-10-24 52 views
2

我坚持试图让时间从网站获取的数组。我得到的阵列正好是这一个:如何在对象之间创建5分钟时间间隔的NSArray?

NSArray *rawData = @[@"8:06", @"8:07", @"8:08", @"8:09", @"8:10", @"8:11", @"8:12", @"8:13",@"8:14", @"8:15", @"8:16", @"8:17", @"8:18", @"8:19", @"8:20", .... @"15:05"]; 

所以数组从8:06到15:05以1分钟为增量。我想我只是想不出该怎么办,是从一个新的数组,但与第5多的时间开始,即:8:10和5分钟增加最多的15:05去,所以最终阵列的NSLog会是这样的:

8:10, 8:15, 8:20, 8:25, ...., 10:45, 10:50, 10:55, 11:00, 11:05, ...., 14:55, 15:00, 15:05 

所以任何想法?

+0

' - [NSDate的dateByAddingTimeInterval:] '洛OKS像你需要什么:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html#//apple_ref/occ/instm/NSDate/dateByAddingTimeInterval: –

回答

7

在这种特殊情况下,你可以只检查时间字符串以“0”或“5”结尾:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF ENDSWITH '0' OR SELF ENDSWITH '5'"]; 
NSArray *filteredData = [rawData filteredArrayUsingPredicate:predicate]; 

(注意,这是为5的倍数你可以同样进行一个特殊的解决方案对于10 倍数,但它不会在其他情况下的工作就像3的倍数或7)

+0

这个伎俩!!!!谢谢马丁! –

+0

为什么这不适用于3和7的倍数? – user1673099

+0

但它是对我工作3 7 – user1673099

0

另一种方式,你可以尝试这样如下: -

NSArray *arr=[NSArray arrayWithObjects:@"8.01",@"8.05",@"8.06",@"8.10",@"8.02",nil]; 
NSMutableArray *arrMut=[NSMutableArray array]; 
for(NSString *str in arr) 
{ 
    if ([str length]>3) 
    { 
    NSString *str1=[str substringFromIndex:3]; 
    if ([str1 intValue]==5 || [str1 intValue]==0) 
     [arrMut addObject:str]; 
    } 
} 
NSLog(@"%@",arrMut); 
相关问题