본문 바로가기
IOS

[Objective-C] 날짜비교

by 서강 2018. 4. 12.

1. 오늘과 특정날 비교하기 


1
2
3
4
5
6
7
- (NSInteger)DateCompareToNow:(NSDate *)date{
    NSDateFormatter* df = [[NSDateFormatter allocinit];
    [df setDateFormat:@"yyyy-MM-dd"];
    NSDate *targetDate = [mdf dateFromString:[mdf stringFromDate:date]];
    NSInteger result = (int)[targetDate timeIntervalSinceNow] / (60*60*24); 
    return result;
}
cs



* [targetDate timerIntervalSinceNow] = NSDate에서 제공하는 타깃 날짜와 오늘날짜 사이의 값. (단위 : 초단위)

- > https://developer.apple.com/documentation/foundation/nsdate/1407937-timeintervalsincenow?language=objc


초단위로 제공되는 값에 의하여 '일' 비교를 하실거면 위와 같이 60*60*24를 해주면 일단위 차이값이 나옵니다.



Ex 1 ) today = 20180412   || param date = 20180412

         result = 0;


Ex 2) today = 20180412   || param date = 20180413

         result = 1;



그렇다면 하루전날과 비교하면 [-1]이 나오겠죠..?ㅎㅎ..




그럼 위의 것을 활용하여 간단한 응용도 작성해보겠습니다.

2. 특정 두개의 날 비교하기


1
2
3
4
5
6
7
8
9
10
11
12
- (NSInteger)TimeCompareFromStandToTarget:(NSDate *)standard time:(NSDate *)target{
 
    NSDateFormatter *df = [[NSDateFormatter allocinit];
    [df setDateFormat:@"yyyy-MM-dd"];
    NSDate* standardDate = [df dateFromString:[df stringFromDate:standard]];
    NSDate* targetDate = [df dateFromString:[df stringFromDate:target]];
    NSInteger standardResult = (int)[standardDate timeIntervalSinceNow] / (60*60*24);
    NSInteger targetResult = (int)[targetDate timeIntervalSinceNow] / (60*60*24);
    
    return standardResult - targetResult;
 
}
cs



return 되는 값이 양수라면 stantdard값이 더 미래입니다. [음수라면 target값이 더 미래]




궁굼하신 것이 있다면  댓글달아주세요. 



'IOS' 카테고리의 다른 글

1. Intro  (0) 2019.05.10

댓글