NSDate - (NSComparisonResult)compare:(NSDate *)other 메서드로 비교하게 되면
return에
NSOrderedAscending (date보다)오래된날짜
NSOrderedSame 같은날짜
NSOrderedDescending 이후의날짜
로 나오게 된다
NSDate 로 비교하게 될 경우 NSDate가 만들어진 시간에 따라서 같은 날짜여도 NSOrderedAscending 를 호출하는 경우가 있는데 이 때에는 NSDateComponents을 사용하면 시간과 관계없이 단순 날짜만 비교하게 된다.
NSDate * startDate = [NSDate date];
NSDate * endDate = [NSDate dateWithTimeIntervalSinceNow:60*60*24];
NSDateComponents *dateComp = [[NSCalendar currentCalendar] components:NSDayCalendarUnit fromDate:startDate toDate:endDate options:0];
NSLog(@"Day : %d", [dateComp day]);
[dateComp day]에는 날짜의 차이인 1이 들어가 있으며 같은 날짜의 경우 0 해당일보다 작으면 음수로 나오게 된다.
* NSDateFormatter 을 사용 한 간단 비교 방법
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];
NSDate *firstDate, *secondDate; //이곳에 비교 날짜를 세팅 하면 됩니다.
//숫자로 변환
int getNowDate = [[dateFormat stringFromDate:firstDate]intValue],
getDate = [[dateFormat stringFromDate:secondDate]intValue];
나온 2가지 숫자를 비교하여 처리하면 됩니다.
'iPhone' 카테고리의 다른 글
ios Exception Type signal (0) | 2013.05.06 |
---|---|
ios 메모리 에러 찾기 NSZombieEnabled 추가 (0) | 2013.04.08 |
xcode4 svn 연결 (3) | 2012.10.16 |
UITableView Header와 SectionHeader custom 변경 (0) | 2012.09.27 |
ios sms, mail, 웹페이지 외부연동 그리고 app안에서 sms 메일 보내기 (MFMessageComposeViewController,MFMailComposeViewController 사용) (0) | 2012.09.26 |