2016-09-17 2 views
-1

NSDates을 비교하는 데 문제가 있습니다. 적절한 가치를 얻지 못하고 잘못된 방향으로 가고 있습니다.0 또는 같음을 반환하는 두 NSDate 비교

먼저 compare 방법을 사용하여 NSDate을 반환하고 0을 반환하고 다음으로 동일한 출력을 제공하는 timeIntervalSince1970을 호출하여 float로 변환하려고했습니다. 내가 뭘 잘못하고 있니?

여기 간단한 시도가 있습니다. 모든 날짜 편대의

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"dd/MM/YYYY"]; 

NSString *date1String = @"01/01/2016"; 
NSString *date2String = @"03/01/2016"; 

float date1 = [[formatter dateFromString:date1String] timeIntervalSince1970]; 
float date2 = [[formatter dateFromString:date2String] timeIntervalSince1970]; 

if (date1 > date2) { 
    NSLog(@"date1 is later than date2"); 

} else if (date1 < date2){ 
    NSLog(@"date1 is earlier than date2"); 

} else { 
    NSLog(@"date1 is Equal date2 %f \n%f",date1,date2); 
} 

답변

0

먼저 잘못, 그것은 dd/MM/yyyyNSDate 개체를 비교하는 compare를 사용해야합니다.

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"dd/MM/yyyy"]; 

NSString *date1String = @"01/01/2016"; 
NSString *date2String = @"03/01/2016"; 

NSDate *date1 = [formatter dateFromString:date1String]; 
NSDate *date2 = [formatter dateFromString:date2String]; 
if ([date1 compare:date2] == NSOrderedDescending) { 
    NSLog(@"date1 is later than date2"); 
} else if ([date1 compare:date2] == NSOrderedAscending) { 
    NSLog(@"date1 is earlier than date2"); 
} else { 
    NSLog(@"dates are the same"); 
} 
+0

감사합니다. YYYY가 문제였습니다. 이제 제대로 표시됩니다. :) –

+0

YYYY를 yyyy로 변경하지 않으면 적절한 날짜가 표시되지 않습니다. –

+1

double을 사용하지 말고 NSTimerInterval을 사용하십시오. 적절한 날짜 형식으로 답변을 업데이트하십시오. – rmaddy