본문 바로가기

IT/iOS

NSDate 특정날짜와 현재날짜 비교

특정날짜를 오늘과 비교해서 차이를 구하는 함수이다.

 

한마디로 디데이같은 개념이라 생각 하면 된다.
- (NSInteger)formattedDateCompareToNow:(NSDate *)date
{
    NSDateFormatter *mdf = [[NSDateFormatter alloc] init];
    [mdf setDateFormat:@"yyyy-MM-dd"];
    NSDate *midnight = [mdf dateFromString:[mdf stringFromDate:date]];
    NSInteger dayDiff = (int)[midnight timeIntervalSinceNow] / (60*60*24);
    return dayDiff;
}
 
사용법은 다음과 같다
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *updateDate = [dateFormatter dateFromString:@"2013-06-10"]];
NSInteger date = [self formattedDateCompareToNow:updateDate];
결과는 오늘과 비교하는 대상이 과거 하루전이면 -1를 리턴하고

 

반대로 미래 내일을 비교하면 1을 리턴한다.

 

꼭 yyyy-MM-dd형식을 사용하지 않아도된다.