//时间转换与比较
//时间转换
+(double)cqNewVideosFromTimestamp:(NSString*)aTimeStamp
{
//9-Aug, 2011 1:00AM ET
if (!aTimeStamp) {
return 0;
}
NSArray *dayComponents
= [aTimeStamp componentsSeparatedByString:@"-"];
if ([dayComponents count]<2) {
return 0;
}
NSInteger day
= [[dayComponents objectAtIndex:0] intValue];
aTimeStamp = [dayComponents objectAtIndex:1];
NSArray *monthComponents= [aTimeStamp componentsSeparatedByString:@","];
NSInteger month
= [CQFormatting cqMonthIndex:[monthComponents objectAtIndex:0]];
aTimeStamp = kCQ_Trim_String([monthComponents objectAtIndex:1]);
NSArray *yearComponents = [aTimeStamp componentsSeparatedByString:@" "];
NSInteger year = [[yearComponents objectAtIndex:0] intValue];
aTimeStamp = [yearComponents objectAtIndex:1];
NSInteger houroffset = 0;
if ([aTimeStamp hasSuffix:@"AM"]) {
aTimeStamp = [aTimeStamp stringByReplacingOccurrencesOfString:@"AM" withString:@""];
}else{
houroffset = 12;
aTimeStamp = [aTimeStamp stringByReplacingOccurrencesOfString:@"PM" withString:@""];
}
NSArray *hourComponents = [aTimeStamp componentsSeparatedByString:@":"];
NSInteger hour = [[hourComponents objectAtIndex:0] intValue]+houroffset;
NSInteger minute= [[hourComponents objectAtIndex:1] intValue];
CFGregorianDate gd = {
.year = year,
.month = month,
.day = day,
// tchan: GCC complains about a missing initializer because the .day initializer is not "simple enough" or something.
.hour = 0,
};
gd.hour
= hour;
gd.minute
= minute;
gd.second = 0;
return CFGregorianDateGetAbsoluteTime(gd,NULL);
}
//时间比较
{
newsItems = [[NSMutableArray alloc] initWithCapacity:100];
[newsItems addObject:news.item];
[newsItems sortUsingComparator:^ NSComparisonResult(id obj1, id obj2) {
CQNewsItemBase *newVideo1 = ASDynamicCast(CQNewsItemBase, obj1);
//Airsource_Log_Debug(@"%@",obj1);
CQNewsItemBase *newVideo2 = ASDynamicCast(CQNewsItemBase, obj2);
double d1 = [CQFormatting cqNewVideosFromTimestamp:newVideo1.timestamp];
double d2 = [CQFormatting cqNewVideosFromTimestamp:newVideo2.timestamp];
if (d1<d2) {
return 1;
}else if(d1==d2){
return 0;
}else{
return -1;
}
}];
}